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)
buddys:=(SoapConnection1.GetSOAPServer as IDataMod).getBuddyList(sessionID,'all');
deklariert in meiner Invoke Data Mod
pas ist die function übrigens so:
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;
}
?>