[Résolu] Problème de récupération

Problème de récupération [Résolu] - C#/.NET managed - Programmation

Marsh Posté le 17-04-2008 à 14:14:21    

Bonjour,
j'ai un problème lors de la réception d'une requête sur mon client.
 
Je développe avec visual studio, mon programme client est en c# et lorsque j'essaye d'appeler une méthode sur le serveur en WSDL, le message suivant s'affiche :
 
"Le type de contenu text/xml; charset=ISO-8859-1 du message de réponse ne correspond pas au type de contenu de la liaison (text/xml; charset=utf-8).
Si vous utilisez un codeur personnalisé, vérifiez que la méthode IsContentTypeSupported est implémentée correctement. Les premiers 587 octets de la réponse étaient :
« <?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle....."
 
A partir de là, je ne sais pas quoi modifier; si vous avez une idée merci de m'aider !


Message édité par daguero le 21-04-2008 à 11:34:47
Reply

Marsh Posté le 17-04-2008 à 14:14:21   

Reply

Marsh Posté le 17-04-2008 à 20:25:06    

visiblement, le WSDL spécifie une communication en UTF-8 et que les trames remballer à l'exécution sont en ISO-8859-1.
 
Donc pour remettre les termes dans leur contexte, tu appeles à Web Services. Celui-ci il est écris en quoi? Moi je pense que le problème vient simplement de ton serveur qui ne respecte pas sa définition (WSDL).

Reply

Marsh Posté le 18-04-2008 à 10:14:07    

salut moi23372, merci de t'être penché sur mon problème !
 
le web service a été fait en php et j'ai remarqué que le WSDL est défini en ISO-8859-1 :
 
-> <?xml version="1.0" encoding="ISO-8859-1" ?>  
 
Malgré tout je viens de retenter d'exécuter mon client en faisant appel à un copié-collé de ce WSDL dans lequel j'ai remplacé ISO-8859-1 par UTF-8 :
 
-> <?xml version="1.0" encoding="UTF-8" ?>  
 
Mais il y a toujours le même problème, comme tu dis c'est peut être un problème de conversion entre le serveur php en lui même et le WSDL.
Par ailleurs, ces derniers on était fait sous linux donc le serveur est sous linux et je teste mon client sous XP ...
Je tiens à préciser que les personnes ayant développé le serveur sur lequel je travaille on utilisé la bibliothèque "nusoap".
 
Je continue à chercher, je pense que ça doit être un truc tout bête à modifier/ajouter; si jamais quelqu'un connait la solution merci de la noter ici !


Message édité par daguero le 18-04-2008 à 10:17:11
Reply

Marsh Posté le 18-04-2008 à 20:29:46    

Visiblement, c'est ça le problème.  
Ton serveur JAVA ne respecte pas sa définition.  
Comme je le comprends, il spécifie un ENCODING en ISO-8859-1 et communique en UTF-8. Donc je pense honnêtement que ce fameux Web Service n'est vraiment pas terrible. A noté quand même que PHP n'est pas du tout conçu pour faire ce genre d'opération malheureusement. Et ce qui engendre des problèmes d'interropabilité avec les autres languages.  
 
Normalement, un WSDL est disponible à une URL. Si tu as déjà créer une WebReference, n'oublie pas de faire un "Update Web Reference" dans Visual Studio.  
 
N'est il pas possible que tu t'arranges avec les personnes qui ont fait ce Web Services?
Sinon met un Sniffer entre ton client et ton serveur et regarde les trames qui transite et vérifie lequel des deux intervenants ne communique pas correctement (à mon avis le serveur).  
 
HOPE THIS HELP.

Reply

Marsh Posté le 21-04-2008 à 11:34:03    

C'est bon, en fait le problème ne venait pas du web service mais de la bibliothèque NUSOAP ou il fallait remplacer tous les "ISO-8859-1" par des "UTF-8" dans le fichier "nusoap.php".
 
PROBLEME RESOLU !
(merci à toi pour ton aide :))

Reply

Sujets relatifs:

Leave a Replay

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