Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 通过CURL POST XML数据

PHP 通过CURL POST XML数据

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

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数据

CCadd2BJA0邮政标快公司名称姓名移动电话省份城市区域详细地址公司名称姓名移动电话省份城市区域详细地址CTEST001测试物品一550CTEST002测试物品二550121333312121313212

提交之后 一直报错
This page contains the following errors:

error on line 1 at column 50: Space required after the Public Identifier
Below is a rendering of the page up to the first error.

查询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数据

CCadd2BJA0邮政标快公司名称姓名移动电话省份城市区域详细地址公司名称姓名移动电话省份城市区域详细地址CTEST001测试物品一550CTEST002测试物品二550121333312121313212

提交之后 一直报错
This page contains the following errors:

error on line 1 at column 50: Space required after the Public Identifier
Below is a rendering of the page up to the first error.

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

<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>

有时候远程服务器错误返回的是类似于500错误一样,这时候返回的数据就不是xml的,建议你打印一下。

谢谢邀请。提交之后报错?建议你在提交之后做个断点输出看看是不是有什么错误信息。具体原因只能一点点的输出找找看

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