2011-07-07 3 views
0

J'envoie une chaîne de balises XML et de données en PHP à une API sur un autre serveur qui attend XML.XML malformé renvoyé par la ligne de commande curl

nous envoyons la chaîne via la ligne de commande comme

exec("curl http://addressToAPI.com/index.php?xml=$xml", $response); 

$ xml est la chaîne de balises et pringoperties envoyaient à l'API.

L'API traite la chaîne en XML et renvoie une réponse. Cependant, la réponse $ qui contient le succès ou l'échec renvoyé xml est renvoyée sous la forme d'un tableau qui n'inclut aucun des balises XML.

Malheureusement, nous envoyons les données sous la forme d'une chaîne car le serveur exécute PHP 4.3.9 sans l'extension domxml et n'a pas PHP curl installé non plus. Nous ne pouvons pas l'exécuter sur un autre serveur et nous ne pouvons pas mettre à jour le serveur en raison d'un autre logiciel fonctionnant dessus. Puisque nous avons besoin de travailler avec cette API, nous avons pensé que nous pouvions envoyer le XML sous forme de chaîne (ce qui semble bien fonctionner) mais que la réponse que nous recevons n'est pas retournée en tant que chaîne ou xml.

Nous savons que le serveur API renvoie du code XML lorsqu'il enregistre chaque requête et que nous pouvons voir le document d'entrée et la réponse renvoyée dans son journal. D'une manière ou d'une autre, il semble que la ligne de commande curl change la réponse XML en un tableau sans balises. Je souhaite que cela ait un sens. Est-ce que quelqu'un sait loin pour obtenir la réponse XML afin que nous puissions récupérer les données avec succès.

+0

Sans voir les données retournées et un échantillon correspondant de ce que vous attendez, personne ne peut commencer à comprendre cela. Comment savez-vous que le serveur produit la sortie correcte en premier lieu? L'avez-vous vérifié par d'autres moyens? –

Répondre

0

Nous avons trouvé une solution à cela. Im ne sais toujours pas pourquoi la réponse retournée est un tableau juste une chaîne mais a réussi à l'inclure dans les éléments du tableau. Nous utilisons ensuite une boucle foreach pour passer chaque clé du tableau à la fin d'une chaîne.

Nous avons alors la réponse que nous voulions. Excusez-moi, je comprends qu'il est difficile pour quiconque d'aider sans exemples, surtout lorsque le problème n'est pas clair. Il s'est avéré être l'un de ces cas où vous avez juste besoin de jouer avec le code jusqu'à ce que vous obteniez la solution que vous vouliez.

De toute façon beaucoup de mercis pour votre temps en lisant ce post.

Questions connexes