[RESOLU] Unable to parse the specified order data from request body. Unable to parse xml file

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Unable to parse the specified order data from request body. Unable to parse xml file

Re: Unable to parse the specified order data from request body. Unable to parse xml file

par odilon » 13 oct. 2015, 16:09

Bonjour,
Voici l'erreur : J'ai envoyé 2 fois un champ nonmé xml :
J'ai ajouté dans ma varaible $data :
<?xml version="1.0" encoding="utf-8"?>
J'ai supprimé : CURLOPT_HTTPHEADER et j'ai rectifié 'CURLOPT_POSTFIELDS'
$data = '<?xml version="1.0" encoding="utf-8"?><demande>
        <date>20151008</date>
        <id>852369</id> 
        <campagne>NEWYEAR</campagne>
        <utilisateur>                                                        
          <ville>Montreal</ville>                                                                   
          <province>QC</province>                                                 
        </utilisateur>
      </demande>';
 
//$webservices = 'https://webserviceexterne.com/ws/demande/TOTO?appId=qscvhu&pwd=1598753&xml=';	
$webservices = 'https://webserviceexterne.com/ws/demande/TOTO?appId=qscvhu&pwd=1598753';	
 
$curl_php = curl_init();
curl_setopt($curl_php, CURLOPT_URL, $webservices);
curl_setopt($curl_php, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl_php, CURLOPT_COOKIESESSION, true);
curl_setopt($curl_php, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_php, CURLOPT_SSL_VERIFYHOST, false);
 
curl_setopt($curl_php, CURLOPT_POST, true);
//curl_setopt($curl_php, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
//curl_setopt($curl_php,CURLOPT_POSTFIELDS, "xmlRequest=" . $data);
curl_setopt($curl_php,CURLOPT_POSTFIELDS, http_build_query(array('xml' => $data)));
 
$rep_webservices = curl_exec($curl_php);
 
if(curl_errno($curl_php))
{
    echo 'Erreur : ' . curl_error($curl_php);
}
else
{
  $rep_info = curl_getinfo($curl_php);
 
  print_r($rep_info);
}
 
 print_r($rep_webservices);
 
curl_close($curl_php);
Et ça marche

Re: Unable to parse the specified order data from request body. Unable to parse xml file

par odilon » 08 oct. 2015, 17:06

Merci xTG et @rthur,

Je vais le demander à notre fournisseur de webservice

Bonne journée

Re: Unable to parse the specified order data from request body. Unable to parse xml file

par @rthur » 08 oct. 2015, 15:16

Bonjour,

Le webservice t'indique qu'il n'arrive pas à lire correctement le XML que tu lui envoie donc il faut chercher de ce côté là.
Demande un XML d'exemple pour vérifier que c'est conforme à ce que tu envoies.

A première vue, je dirai qu'il manque la déclaration XML en 1ère ligne

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?>

Re: Unable to parse the specified order data from request body. Unable to parse xml file

par xTG » 08 oct. 2015, 15:13

Voir avec le gérant du webservice ce qui ne va pas dans ta requête. ;)

Unable to parse the specified order data from request body. Unable to parse xml file

par odilon » 08 oct. 2015, 15:05

Bonjour,

J'envoie les données en XML à un web service par la méthode POST.
Voici mon code :
$data = '<demande>
				<date>20151008</date>
				<id>852369</id> 
				<campagne>NEWYEAR</campagne>
				<utilisateur>                                                        
					<ville>Montreal</ville>                                                                   
					<province>QC</province>                                                 
				</utilisateur>
			</demande>';
 
$webservices = 'https://webserviceexterne.com/ws/demande/TOTO?appId=qscvhu&pwd=1598753&xml=';	
 
$curl_php = curl_init();
curl_setopt($curl_php, CURLOPT_URL, $webservices);
curl_setopt($curl_php, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_php, CURLOPT_COOKIESESSION, true);
curl_setopt($curl_php, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_php, CURLOPT_SSL_VERIFYHOST, false);
 
curl_setopt($curl_php, CURLOPT_POST, true);
curl_setopt($curl_php, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($curl_php,CURLOPT_POSTFIELDS, "xmlRequest=" . $data);
 
$rep_webservices = curl_exec($curl_php);
 
if(curl_errno($curl_php))
{
    echo 'Erreur : ' . curl_error($curl_php);
}
else
{
	$rep_info = curl_getinfo($curl_php);
 
	print_r($rep_info);
}
 
 print_r($rep_webservices);
 
curl_close($curl_php);
Je reçois le message erreur par
print_r($rep_webservices)
:
Unable to parse the specified order data from request body. Unable to parse xml file
Que je dois faire pour régler ce problème ?


Merci