etiket niteliklerini kullanırken hatalı XML gönderme cURL

1 Cevap php

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

1 Cevap

&apos; kişiler ile değiştirerek tek tırnak kodlayan sahipsiniz.

Ya da belki çözümleyici tek tırnak olmak niteliklerini ve sadece çift tırnak tanıdığı sevmez, bu yüzden yerine bu deneyin:

<input name=\"id\">