2011-09-02 4 views
0

Suis en tirant mes cheveux en essayant de résoudre ce problème, je reçois une mauvaise erreur de demande lors de la publication au format XML en utilisant curl. Mon code est:Mauvaise demande d'erreur lors de la publication de xml en utilisant curl

$post_string = '<XML DATA>'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER, 
      array('Content-Type: text/xml; charset=utf-8', 'SOAPAction: ""')); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($ch); 

var_dump($data); 

Des idées sur ce qui ne va pas?

ci-dessous est ma chaîne xml

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body> 
<SubmitLead xmlns=""> 
<xmlLead> 
<Lead> 
<General> 
<dealer type="CMH">273</dealer> 
<source ref="stockid">3256</source> 
<enquiry></enquiry> 
<subtype></subtype> 
<comment></comment> 
</General> 
<Prospect> 
<title>n.a</title> 
<name>j</name> 
<surname>m</surname> 
<email>[email protected]</email> 
<home>home</home> 
<work>n.a</work> 
<mobile>4545</mobile> 
<idnumber>n.a</idnumber> 
<comment>4545</comment> 
<area>n.a</area> 
</Prospect> 
<Item> 
<id>25DLC61717</id> 
<makeAsked></makeAsked> 
<modelAsked></modelAsked> 
<yearAsked></yearAsked> 
<mileageAsked></mileageAsked> 
<priceAsked></priceAsked> 
<colourAsked></colourAsked/> 
<registration></registration> 
<vin></vin> 
<purchaseDate/></purchaseDate> 
</Item> 
</Lead> 
</xmlLead> 
</SubmitLead> 
</soap:Body> 
</soap:Envelope> 

Répondre

0

probablement une mauvaise demande parce que le XML est pas valide XML?

+0

Avez testé le xml sur soapclient.com, c'est ok. A quelque chose à voir avec les en-têtes et IIS rejetant les en-têtes pour une raison quelconque, je n'arrive pas à comprendre pourquoi –

0

dans mon code Ruby je l'ai fait façon

resp = http.post("/soap/service", xml, { 'Content-Type' => 'application/soap+xml; charset=utf-8', 'SOAPAction' => "/soap/service/Request" }) 

et il fonctionne

si la différence est que les en-têtes

aussi peut-être vous devriez utiliser une connexion sécurisée si l'URL système a https?

Questions connexes