Curl不工作,返回400个错误请求


Curl not working and returning 400 Bad Request

我试图使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