SQLの窓

2013年09月16日


POST oauth/request_token で、PHP の cURL 関数が 400 Bad Request になる原因( Content-Length: -1 )

昔はうまくいっていたコードが動かなくて、GET で処理すると正しく動作しましたが、POST で行う場合に POST データを空文字で指定する必要がありました。

実際ログ取って見てみると、CURLOPT_POSTFIELDS を指定しないと Content-Length: -1 になります。これを Bad Request とする仕様であると言う事みたいです。

この理由から、GET で処理すると問題無く動くという事です。

▼ エラーになるコード
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
	curl_setopt($curl, CURLOPT_URL, $twitter_url);
	curl_setopt($curl, CURLOPT_POST, 1);

▼ 正しく動作するコード
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
	curl_setopt($curl, CURLOPT_URL, $twitter_url);
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_POSTFIELDS, "");

この違いで考えられる事はだいたい想像は付きますが、実際に WWW サーバーに送ってログ見ないと解らないです。


タグ:トラブル
posted by lightbox at 2013-09-16 14:41 | PHP + Twitter | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり