Heim >Backend-Entwicklung >PHP-Tutorial >PHP POST XML-Daten über CURL

PHP POST XML-Daten über CURL

WBOY
WBOYOriginal
2016-08-10 09:07:202162Durchsuche

PHP 通过CURL post xml数据到远程地址
1、CURL POST方法
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml; charset= utf-8"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);

curl_close($ch);
header('Content-Type:text/xml; charset=utf-8');

2、下面是XML数据

BJA0邮政标快公司名称姓名< /name>移动电话省份城市区域详细地址公司名称姓名移动电话详细地址CTEST001测试物品一5< /planQty>50CTEST002< itemName> /key1> ;12121313212

提交之后 一直报错
Diese Seite enthält die folgenden Fehler:

Fehler in Zeile 1 in Spalte 50: Erforderlicher Platz nach dem öffentlichen Bezeichner
Unten finden Sie eine Darstellung der Seite bis zum ersten Fehler.

查询XML报文数据信息 没有什么错误,求大侠解决 是CURL方法写的不对 还是其他问题

回复内容:

PHP 通过CURL post xml数据到远程地址
1、CURL POST方法
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml; charset= utf-8"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);

curl_close($ch);
header('Content-Type:text/xml; charset=utf-8');

2、下面是XML数据

<< WarehouseCode>BJA0Postal StandardFirmennameName< /name>Mobiltelefonprovincecityregiondetaillierte Adresse FirmennameNameMobiltelefon Provinz< city>CityRegionDetaillierte Adresse< /ownerCode>CTEST001Testelement eins5< /planQty>50 CTEST002< itemName>Testelement zwei< planQty>55012133331212< ;key3>1313212

Ich erhalte nach dem Absenden immer wieder Fehlermeldungen

Diese Seite enthält die folgenden Fehler:

Fehler in Zeile 1 in Spalte 50: Erforderlicher Platz nach dem öffentlichen Bezeichner

Unten finden Sie eine Darstellung der Seite bis zum ersten Fehler.

Fragen Sie die XML-Nachrichtendateninformationen ab. Bitte helfen Sie mir, das Problem zu lösen. Liegt es daran, dass die CURL-Methode falsch geschrieben ist?

<code>$ch = curl_init();
$timeout = 30; 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:text/xml; charset=utf-8"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
echo $result;</code>
Manchmal ähnelt der vom Remote-Server zurückgegebene Fehler einem 500-Fehler. Zu diesem Zeitpunkt handelt es sich bei den zurückgegebenen Daten nicht um XML. Es wird empfohlen, sie auszudrucken.

Danke für die Einladung. Ist nach dem Absenden ein Fehler aufgetreten? Es wird empfohlen, nach dem Absenden eine Haltepunktausgabe durchzuführen, um zu prüfen, ob Fehlermeldungen vorliegen. Die konkreten Gründe lassen sich nur in Bruchstücken der Ergebnisse finden

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn