Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit Soap und Umlauten... (https://www.delphipraxis.net/80722-problem-mit-soap-und-umlauten.html)

kingflo 14. Nov 2006 12:09


Problem mit Soap und Umlauten...
 
Hallo... ich habe ein riesiges Problem...
In meinem Soap Client benutze ich TSoapConnection, um eine Soap verbindung mit einem PHP Soap Server herzustellen.
Soweit so gut.

Dann benutze ich z.B folgende funktion, die mir z.B Name, Nachname und Username von den freunden des users mit der übergebenden sessionID zurückliefert (funktionierte auch super)

Delphi-Quellcode:
buddys:=(SoapConnection1.GetSOAPServer as IDataMod).getBuddyList(sessionID,'all');
deklariert in meiner Invoke Data Mod pas ist die function übrigens so:

Delphi-Quellcode:
function getBuddyList(sessionID:string;status:string): WideString; stdcall;
So hatte auch immer super geklappt und aus gereicht! jetzt hatte ich aber letztens immer folgende exception bei dem funktions aufruf, und die variable "buddys" war leer:

Code:
[14.11.2006 -- 12:58:46]:Im Textinhalt wurde ein ungültiges Zeichen gefunden.

Linie: 2
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http:
Jetzt habe ich nach echt langem suchen rausbekommen, dass ich bei einem User im Nachnamen ein "ß" zurückbekomme, und als ich es mit phpmyadmin in der Datenbank auf "ss" geändert habe, kam auch die exception nicht mehr, und ich hatte meine buddys wieder usw...

Jetzt brauche ich unbedingt hilfe, denn der soap aufruf in dieser art und weise mache ich öfter, und wenn der immer abkackt, wenn ich irgendwo ein Umlaut zurückbekomme, dann habe ich nen riesiges problem, weil es öfter vorkommen kann, das ich nen Umlaut oder ß zurückkriege.


Weiß vielleicht jemand warum das nicht geht? oder hat jemand ne ahnung, wie, bzw was ich machen kann? Ich bin echt verzweifelt...


Hier ist übriegens der code des PHP Soap Servers.

Zitat:

<?php


$databaseInc = "database.inc";

$wrapperInc = "functions/wrapper.inc";


include_once($databaseInc);
include_once($wrapperInc);

# Function definition -----------------------------------------------------------------------


function addiere($sum1, $sum2) {
# Testfunction to test the soap service
return $sum1 + $sum2;
}
function getServerTime() {
# Testfunction to test the soap service
return time();
}

// New Soap Server --------------------------------------------------------------------->>
try {
$server = new SoapServer(NULL,
array('uri' => "urn:stryykeSoapServer"));


// Add functions to soap service ------------------------------------------------------->>
$server->addFunction(SOAP_FUNCTIONS_ALL); //Funktion zum Server hinzufügen


if ($_SERVER["REQUEST_METHOD"] == "POST") {
$server->handle();
} else {

echo ('<pre>');
print_r($_SERVER);
echo ('</pre>

');
echo "This SOAP server can handle following functions: ";
$functions = $server->getFunctions();
foreach($functions as $func) {
echo '
'.$func . "\n";
}
}


}

catch (SOAPFault $f) {
print $f->faultstring;
}



?>





Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz