2012-02-28 15 views
0

Googleは411エラーを表示しましたが、すでにContent-Lengthをヘッダーに入れています。このエラーを修正するにはどうすればよいですか?411 Error Content Lengthはありますが

$authToken = getAuthorizationToken(); 
$xml_data = '<?XML version="1.0"?> 
    <Batch> 
    <Remove>  
    <Promotions>  
    <Promotion id="d5111e0a"/> 
    </Promotions> 
    </Remove> 
</Batch>'; 
$length = strlen($xml_data); 
$ch = curl_init("http://www.google.com/cse/api/default/promotions/pe0dnd27zuc"); 
$header = array(); 
$header[] = 'Authorization: GoogleLogin auth=' . $authToken; 
$header[] = 'Content-Type: text/xml'; 
$header[] = 'Content-Length: ' . $length; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); 
$result = curl_exec($ch); 
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
+0

すべてのアイデア?私が$ header [] = 'Content-Length:'を削除しています。 $ length;およびcurl_setopt($ ch、CURLOPT_POSTFIELDS、$ xml_data); - コードは正常に動作し、xmlですべてのプロモーションIDを送ってください – propostaff

答えて

2

あなたのヘッダーarray.cURLからのContent-Length部分が自動的に追加されます削除してください。だからあなたはそれを送る必要はありません。

 

//remove following 
$header[] = 'Content-Length: ' . $length; 
 

はそれが

+0

HTTP 1.1エラー411は長さが必要です:サーバーは定義されたContent-Lengthなしで要求を受け入れることを拒否します。しかし、私はこれがカールアクション自体によって追加されたと考えました。 – Raptor

+0

それは役に立たなかった。まだ同じ411エラー.. – propostaff

0

はこれを試してみてくださいホープ:削除

curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch,CURLOPT_POST, $length); //count of your posted array 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); 
    $result = curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 

あなたは掲載さフィールドの長さ/数が欠落しています。

関連する問題