|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Bonjour,
J'ai un problème avec le retour du serveur nusoap. L'XML retourné après traitement (sans aucun problème) par le serveur est invalide. De ce que je peux voir, la dernière balise est coupée : au lieu de : Ce problème apparait quelque soit le taille du contenu du body du retour (j'ai essayé avec 500 caractères et 5 caractères). J'ai également essayé de supprimer les caractères spéciaux sans succès. Les messages d'erreurs côté client : Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Bonjour,
Code :
nusoap_parser: XML error parsing SOAP payload on line 1: Not well-formed (invalid token) Après, je ne saurais t'en dire plus. |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Merci d'avoir répondu aussi vite.
Je pense que tout le contenu du xml est sur une seule ligne donc ce message d'erreur ne m'avance pas beaucoup. En revanche après un copié collé dans Notepad du retour, je constate l'apparition de '??' en début de la réponse xml. Pourtant je ne les ajoute nulle part et ils n'apparaissent nulle part dans les réponses xml. Problèmes d'encodage ? Normalement je suis en UTF-8 côté client et serveur. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Dans les balises body de l'enveloppe du retour, j'ai constaté que certains caractères sont remplacés par les codes html.
Exemple : '<' devient '<' Serait-ce un traitement automatique fait par nuSoap du contenu de la balide de retour ? edit : autant pour moi, c'est moi qui à l'affichage du retour ajoutait un petit "htmlspecialchars" Le problème ne vient donc pas de la. |
|
|
00
|
|
|
#5 |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Ok, pourrait tu faire passer ton code XML ?
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Mon XML de retour :
Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
J'ai fait apparaitre des "&# 65279 ;" (sans espaces) avant l'entete du XML qui d'après Google serait des espaces liés à l'UTF8 avec et sans BOM...
Reste à savoir comment les supprimer. |
|
|
00
|
|
|
#8 |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Je ne vois rien qui cloche dans le code que tu as fait passer.
Après, je ne vois pas pourquoi tu aurais besoin d'un BOM, tu peux consulter : UTF-8, UTF-16, UTF-32 & BOM Q: What are some of the differences between the UTFs? Q: Can a UTF-8 data stream contain the BOM character (in UTF-8 form)? |
|
00
|
|
|
#9 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Merci.
J'ai converti tous mes fichiers php en utf-8 sans BOM avec notepad et ce problème semble résolu. Il me reste toutefois un deuxième problème qui est la dernière balise du retour xml qui est découpée. J'obtiens ainsi "</SOAP-ENV:Envelo" à la place de "</SOAP-ENV:Envelope>". Ce problème apparaissait aussi avec le précédent problème mais je n'ai pas voulu tout mélanger. |
|
|
00
|
|
|
#10 | ||
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Citation:
Citation:
![]() Ceci étant, pourrais tu nous faire passer ton code XML exactement tel que le reçois. Merci. |
||
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
J'en suis à me demander si ces 2 problèmes ne sont pas liés :
là où tout à l'heure la dernière balise de retour se coupait à "</SOAP-ENV:Env", elle se termine maitenant à "</SOAP-ENV:Envelo" soit 3 caractères de gagnés. Il doit me rester un espace invisible qui traine quelque part. Mon XML de retour : Code :
Je continue donc de chercher dans la direction des problèmes de BOM... |
||
|
|
00
|
|
|
#12 |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
ok, je saurais dire la cause de tout ceci.
Mais en suivant ce que tu écrit, tu dis avoir gagner 3 caractères en supprimant  ;. Or, il ne te manque que 3 caractères pour que ton XML soit complet ... et le code XML que tu montre commence par  ;. Il ne te "suffirait" pas de supprimer ce premier caractère  ; pour avoir le code XML complet ? |
|
00
|
|
|
#13 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
J'y ai bien pensé mais il s'agit d'une réponse XML généré par une librairie (nuSoap). Cette réponse à terme sera lue par un logiciel client dont je ne suis pas l'auteur et que je ne peux donc pas modifier.
En revanche une bonne nouvelle, j'ai retrouvé un vilain petit fichier php qui était passé au travers des mailles du filet lors de la conversion en UTF-8 sans BOM. Il semblerait que se soit bon. J'effectue quelques tests et si ça fonctionne, -> résolu. Comme quoi on peut bien se casser la tête sur l'encodage.... |
|
|
00
|
|
|
#14 |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Donc finalement, tu n'utilise pas de BOM avec UTF-8 !
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Problème résolu
Pour ceux qui penseraient avoir le même problème : pour voir les espaces invisibles, il faut faire un copié collé du code de vos fichiers dans un éditeur de texte très très basique (type bloc notes) ; vous verrez apparaitre de nouveau caractères que vous ne voyiez pas comme un ? ou un carré vide ou ¿ c'est selon ou parfois le code ;. UTF-8 et BOM, pas bien dans mon cas. Merci aux personnes qui m'ont répondues
|
|
|
00
|
|
|
#16 | |
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Citation:
dès lors que l'on sait comment les paramétrés; ou encore d'utiliser un programme |
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Développeur Web Inscription : novembre 2012 Messages : 13 ![]() |
Oui mais il faut être sûr de son coups au risque de se casser la tête
|
|
|
00
|
|
|
#18 |
![]() ![]() |
À ce niveau-là, autant utiliser un éditeur hexa, c'est le plus sûr.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais. Partagez vos connaissances, mais aussi comment s'en servir. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com