PHPのcURLスクリプトでPOSTリクエストを送信する際に問題が発生しています。cURL POST:400無効なコンテンツの長さ
私は自分の個人的な使用のために、プロキシを作成しようとしています。これは、サーバー経由でWebページを取得し、ローカルに表示します。私はそのページ上のフォームで投稿する場合は、それはに行きますhttp://fetch.example.com/http://theurl.com/
:
URLはそうのように発見されましたフォームのACTION(前にURLを取得)。以下のコードを使用してこのPOSTリクエストを処理させようとしていますが、私がPOSTするものは常に400 Bad Requestエラーをもたらします。
$chpg = curl_init();
curl_setopt($chpg, CURLOPT_URL, $_URL);
curl_setopt($chpg, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($chpg, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chpg, CURLOPT_COOKIESESSION, true);
curl_setopt($chpg, CURLOPT_COOKIEJAR, "cookies/$_COOKIE_FILE.$_DOMAIN.txt");
curl_setopt($chpg, CURLOPT_COOKIEFILE, "cookies/$_COOKIE_FILE.$_DOMAIN.txt");
if($_POST) {
$fields = array();
foreach($_POST as $col => $val) {
$fields[$col] = urlencode($val);
}
print_r($fields);
curl_setopt($chpg, CURLOPT_POST, count($fields));
curl_setopt($chpg, CURLOPT_POSTDATA, $fields);
}
の代わりに、あなただけの '$ fields_str = http_build_query($ _ POST)' http://php.net/manual/enを行うことができ、foreachループを固定使用して、これを試してみてください/function.http-build-query.php –
@LawrenceCherone:Ha、それは素晴らしいです。私はそれが存在することを気づかなかった!毎日何か新しいことを学ぶ。 :) – Xenon
クエリでurlencodeも使用する必要がありますか?私はこのプロジェクトでHotmailにログインできないようです - 私の電子メールとパスは正しいと言われていますが、まだクエリが表示されており、それはうまくいきます。 – Anonymous