cURL XML发布问题


cURL XML Post issue

我向Web服务发布了一些XML,我编写的代码在所有其他情况下都能工作,只是在本例中不起作用。

这是我的密码;

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);  
curl_setopt($ch, CURLOPT_ENCODING,'gzip');
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 45); 
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); 
$result = curl_exec($ch); 
curl_close($ch);
return $result;

它不断返回一个500内部服务器错误,这与您直接访问url时的错误相同,所以就像POST数据没有被发送一样。但我没有检查内容长度,它似乎是…

有什么想法吗?

只尝试这个

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_string); // NOTE used $xml_string to indicate its just a text string of XML format
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_NOPROGRESS, 0);
    $result = curl_exec($ch);
    curl_close($ch);