Scenario: Sending XML, generated using php, via cURL to an external server for parsing.
Problem: The XML contains tag attributes which cause problems when being sent using cURL
Code:
$generated_xml =
-- NOTE: NOT THE SYNTAX USED IN THE CODE, SPLIT FOR EASE OF READING --
"<xconnect>
<report>
<id>contact_get</id>
<input name='email'><![CDATA[EMAIL_CAPTURED_FROM_INPUT]]></input>
<input name='id'></input>
</report>
</xconnect>";
$aCurlHeaders = array ("Content-Type: text/xml");
$hCurl = curl_init();
-- NOTE: HTTPHEADER OPTION FAILS (page returns 'no xml sent') --
curl_setopt($hCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($hCurl, CURLOPT_POST, true);
curl_setopt($hCurl, CURLOPT_CONNECTTIMEOUT, 120);
//curl_setopt($hCurl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($hCurl, CURLOPT_URL, "SITE_URL");
curl_setopt($hCurl, CURLOPT_POSTFIELDS, "XMLDOC=$generated_xml");
$sResp = curl_exec($hCurl);
curl_close($hCurl);
if($sResp){ echo $sResp; }
Further details:
Ben cURL hakkında büyük miktarda bilmiyorum
CURL üzerinden XML ayrıştırır sayfasına gönderdi, o, bir POST formu aracılığıyla doğrudan sunucuya gönderir gayet iyi çalışır ve doğru veri döndürür onların test formu, kullanırken Ancak, 'XML belgesi ayrıştırma başarısız' döndürür.
Sorun onları xml düzgün sunucuda ayrıştırmak için izin verir, ancak nitelikleri sunucudan veri almak için gerekli olan boş döner kaldırarak, <input>
etiketleri niteliklerine bağlıdır.
Ben, XML dikte ayrıştırma sayfasına erişimi yok yok gerçi o değişiklik yapmadan bunu yapmak mümkün olacağını düşündüm olurdu ama, nitelikleri gerektirmeyen için kodlama değiştirmek mümkün olabilir orada bir temas var.
Questions:
Neden ben XML yolluyorum yolu ile yapmak, gönderilen bilgi XML olmadığını düşünmek çözümleyici neden HttpHeader gönderme yapar?
Bu (sorunun bir parçası ise) php ayrıştırma XML engellemek mümkün mü
Ben bu konuda bu yüzden önce ne cURL özniteliklerini kullanarak örneklerini gördüm
Teşekkürler:
Teşekkürler