我试图使curl请求发布一些数据到restful api。这就是我的代码:
$header = "POST HTTP/1.0 'r'n";
$header .= "Content-type: text/xml 'r'n";
$header .= "Content-length: " . strlen($xml) . " 'r'n";
$header .= "Content-transfer-encoding: text 'r'n";
$header .= "Connection: close 'r'n'r'n";
$header .= $xml;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
curl_setopt($ch, CURLOPT_POST, true);
$data = curl_exec($ch);
if (curl_errno($ch)) {
print curl_error($ch);
} else {
curl_close($ch);
echo 'success';
}
$xml
包含我要发布的数据。
嗯,问题是,当我运行脚本时,它返回'Success',但帖子并没有真正完成。
这里可能有什么问题?
谢谢。
编辑:var_dump($data)
返回400 Bad Request
是否有任何方法来解决这个问题?
我认为你需要在curl
中添加另一个参数curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
where $postData它是你的post data