PHP Curl给出错误的请求-无效的标头


PHP Curl giving Bad Request - Invalid Header

  1. 当我尝试使用xml头和post字段来处理curl时。我收到错误的请求。我不知道出了什么问题,有人能帮上忙吗?

  2. 标头中传递的移动字段数据是经过三重des转换的


$url="www.test.com/api";
$xml = '<?xml version="1.0" encoding="UTF-8"?><a><b>hai</b></a>';
$xml_header = trim('<?xml version="1.0" encoding="UTF-8"?><mobile>4xKReHFU60Ova0aqHxZldg==</mobile>
')  ;
$headers = array(
"Content-type: text/xml",
"Content-length: " .strlen($xml_header),
"Connection: close",
);
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// set url 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("xml"=>$xml));
// Check if any error occurred
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
echo "<pre>";var_dump($info);
echo 'error:' . curl_error($ch);
//echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}                                   
$result = curl_exec($ch);
echo "<pre>";print_r($result);exit;

错误请求 通常从与您交互的服务器发送,以告诉您该请求存在严重问题,最常见的是格式错误的HTTP请求,直到远程服务器根本不知道该怎么办。

也就是说:你中了打破它的头奖。

从你的请求中一点一点地删除,直到你得到一条更具体的错误消息,它可以更准确地指导你在再次添加内容时不要再次遇到相同的错误。

这只是一般性的建议。我可以更具体地发现的问题已经被问到并得到了回答,因此我以重复的方式结束了它,这应该提醒你,让卷曲处理内容长度通常更容易,就像你试图处理它一样(无意双关(。