J'envoie des données XML comme une requête POST avec boucle au serveur comme suit:données Curl Demande dommages XML post
// $params contains xslt="<xml version ...."
$url = get_cfg_var('Http_Host') . "/webservice/update.php?";
$strParameters = http_build_query($params);
$ch = curl_init($url);
// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $strParameters);
$data = curl_exec($ch);
Maintenant, quand je reçois les données webserive/update.php
$_REQUEST['xslt']
contient seulement quelques données de feuilles de xml avec la plupart des balises dépouillées comme de si [mais avec beaucoup de nouvelles lignes]
USD
,
.
0
5
Je suis à une perte de comprendre ce qui se passe. Est-ce un problème de double encodage?
strParameters ne contiennent des données appropriées au format form-urlencoded [+ pour l'espace, etc.]
J'ai essayé urldecode avant de l'envoyer à gondoler. mais cela ne résout toujours pas le problème.
Si vous regardez dans ces données dans un navigateur, je dirais: pas étonnant. C'est XML et le navigateur va cacher tous les tags qu'il ne connaît pas. Vous cherchez peut-être 'htmlspecialchars' dans ce cas. – hakre
Non - Je ne regarde pas ces données dans le navigateur. J'ai simplement jeté le _REQUEST ['xslt'] dans un fichier du côté serveur. – Fakrudeen
Je ne vois pas d'erreur dans votre code. La méthode semble bonne. Votre serveur * pourrait * modifier les données. Vous pouvez essayer de coder en base64 les données et les décoder à nouveau dans le script et vérifier si elles le sont ensuite. – hakre