WebService : Serveur en PHP et Client en C - C++ - Programmation
Marsh Posté le 16-02-2003 à 21:20:05
si le serveur renvoie qq chose de différent avec un nouveau client, ça vient d'une requête mal formulée. regarde les headers reçus par le serveur, ou choppe un sniffer ( http://analyzer.polito.it/ ) pour comparer les envois des clients php / C.
Marsh Posté le 16-02-2003 à 21:24:50
Je crois bien avoir vu sur Internet une histoire de 5 octets en fin de réponse du serveur pour les clients écrits en C mais je ne retrouve plus la page ...
Marsh Posté le 16-02-2003 à 21:27:43
J'ai retrouvé la page, mais je ne sais pas comment modifié le fichier xmlrpcs.inc.
Le lien :
http://sourceforge.net/tracker/ind [...] tid=116847
Marsh Posté le 16-02-2003 à 21:43:38
houla, le bug bien chelou ... pour modifier le .inc, tu regardes la méthode que tu appelles, puis tu rajoutes 5 caractères à ce qu'elle envoie.
à voir la tête du fichier et du bug content-length, ça doit être ça :
function service() {
$r=$this->parseRequest();
$payload="<?xml version=\"1.0\"?>\n" .
$this->serializeDebug() .
$r->serialize();
Header("Content-type: text/xml\r\nContent-length: " .
strlen($payload));
print $payload;
}
donc remplacer la dernière ligne par qq chose comme print $payload . " ";
Marsh Posté le 16-02-2003 à 22:07:51
Chez moi la correction comme tu me l'as proposée (et qui me semble à l'air correcte) ne marche pas ...
Marsh Posté le 16-02-2003 à 22:11:17
peut-être qu'il faut aussi modifier content-length alors :
$payload = "<?xml ... " . ... . ... . " ";
debugge un peu aussi, regarde si c'est bien cette fonction qui est appelée.
Marsh Posté le 16-02-2003 à 21:12:45
J'ai fait mon serveur pour le webservice en PHP, j'ai testé avec un client en PHp et pas de problème ...
Mais quand je fais mon client en C, il me renvoit une erreur lorsque j'essaye de récupérer le résultat d'une fonction, voici l'erreur :
XML-RPC Fault: unclosed token (-503)
Quelqu'un saurait d'où provient cette erreur ???