Précédent   Forum du club des développeurs et IT Pro > Autres langages > XML/XSL et SOAP
XML/XSL et SOAP Forum d'entraide sur XML et SOAP. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2012, 11h03   #1
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
Par défaut php nusoap probleme enveloppe

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 :
1
2
3
nusoap_parser: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)
...
soapclient: Error: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)
Si quelqu'un à une idée sur la question.
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 11h11   #2
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Bonjour,

Code :
nusoap_parser: XML error parsing SOAP payload on line 1: Not well-formed (invalid token)
A priori, l'analyseur t'indique que la première ligne de ton XML n'est pas bien formé.

Après, je ne saurais t'en dire plus.
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 11h26   #3
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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.
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 11h32   #4
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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 '&lt;'

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.
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 11h44   #5
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Ok, pourrait tu faire passer ton code XML ?
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 11h59   #6
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
Mon XML de retour :
Code :
1
2
3
4
5
6
7
8
9
 
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:mafunction xmlns:ns1="http://tempuri.org">
<return xsi:type="xsd:string">moncontenu</return>
</ns1:mafunction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
J'ai comme l'impression qu'il s'agirait d'un problème d'UTF-8 sans et avec BOM...
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 12h08   #7
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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.
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 12h34   #8
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
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)?
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 12h38   #9
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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.
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 12h45   #10
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Citation:
J'ai converti tous mes fichiers php en utf-8 sans BOM avec notepad et ce problème semble résolu.
Géant.

Citation:
Ce problème apparaissait aussi avec le précédent problème mais je n'ai pas voulu tout mélanger.
Tu as bien fait, les choses sont plus claires ainsi.

Ceci étant, pourrais tu nous faire passer ton code XML exactement tel que le reçois. Merci.
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 14h07   #11
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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 :
1
2
3
4
5
6
7
8
9
 
&#65279;<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:mafonction xmlns:ns1="http://tempuri.org">
<return xsi:type="xsd:string">moncontenu</return>
</ns1:mafonction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelo
J'ai volontairement laissé affiché le "&# 65279 ;" en début d'XML. Je ne le vois pas mais il est bien présent. J'en ai toutefois 1 de moins que tout à l'heure.
Je continue donc de chercher dans la direction des problèmes de BOM...
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 14h29   #12
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
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 &#65279 ;.
Or, il ne te manque que 3 caractères pour que ton XML soit complet
... et le code XML que tu montre commence par &#65279 ;.
Il ne te "suffirait" pas de supprimer ce premier caractère &#65279 ;
pour avoir le code XML complet ?
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 14h40   #13
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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....
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 14h53   #14
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Donc finalement, tu n'utilise pas de BOM avec UTF-8 !
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 14h57   #15
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
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
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 15h15   #16
polymorphisme
Modérateur
 
Avatar de polymorphisme
 
Homme Grégory Roche
Publishing
Inscription : octobre 2009
Messages : 1 424
Détails du profil
Informations personnelles :
Nom : Homme Grégory Roche
Âge : 39
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Publishing

Informations forums :
Inscription : octobre 2009
Messages : 1 424
Points : 2 333
Points : 2 333
Citation:
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)
Oui, ceci n'empêche pas de le faire avec des éditeurs plus évolués.
dès lors que l'on sait comment les paramétrés; ou encore d'utiliser un programme
__________________
Article : Installation de Cocoon
Je ne réponds pas aux MP à caractère technique.
polymorphisme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 15h24   #17
iltriltr
Invité régulier
 
Homme
Développeur Web
Inscription : novembre 2012
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 13
Points : 5
Points : 5
Oui mais il faut être sûr de son coups au risque de se casser la tête
iltriltr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 16h18   #18
thelvin
Modérateur
 
Inscription : septembre 2004
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 7 101
Points : 10 332
Points : 10 332
Envoyer un message via Skype™ à thelvin
À 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.
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h05.


 
 
 
 
Partenaires

Hébergement Web