我试图从API获得响应 - 我必须发送一个xml文档,然后我应该得到另一个xml作为响应,但我得到的是' xml错误没有找到元素&#39 ; ....
这是我在php中的cURL代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=' . $email . '&password=' . $password . '&content=' . $xml);
$ex = curl_exec($ch);
不幸的是,当我试图回复$ ex时 - 显示上述错误。 我的所有变量都是正确的,我的xml也是正确的(文档在$ xml变量中给出)。
我错过了什么?
答案 0 :(得分:0)
您正在将内容类型标头设置为 text / xml ,但实际上您尝试将数据发送为 application / x-www-form- urlencoded的即可。要么更正标题,要么只发送 $ xml 变量。
例如:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: text/xml',
'Content-Length: '. strlen($xml))
);
$result = curl_exec($ch);
CURLOPT_RETURNTRANSFER
纯粹是为了让远程服务器的响应放在$result
而不是回显。