0

XMLをWebサービスに投稿していますが、私が書いたコードは、このインスタンスではなく、他のすべてのケースで機能します。

これは私のコードです。

$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;

URLに直接アクセスした場合と同じ500内部サーバーエラーを返し続けるため、POSTデータが送信されていないようです。しかし、私はコンテンツの長さを確認していません..

何か案は?

4

1 に答える 1

0

これだけ試して

    $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);
于 2012-07-25T15:57:37.980 に答える