WebService : Serveur en PHP et Client en C

WebService : Serveur en PHP et Client en C - C++ - Programmation

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 ???

Reply

Marsh Posté le 16-02-2003 à 21:12:45   

Reply

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.

Reply

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 ...

Reply

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

Reply

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 . "      ";  

Reply

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 ...

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed