タイトルはほとんどそれをすべて言います。オプション-L
を使用して cURL がリダイレクトに従うよう強制していますが、サーバーは POST を GET に変換しています。--post302
修正しましたが、必要なバージョン 7.19+ にアクセスできません。別のオプション セットでその動作を再現できますか?
1 に答える
2
短い答え: いいえ、しかし、さらに読んでください。
より長い答え: 問題は、-L オプションにより、curl が 3xx 応答で HTTP リダイレクトを自動的にたどるようになることです。サーバーから 302 が返された場合、curl によって特定の方法で処理されていました (変更され、次の URL に GET を実行する)。これは、ほとんどのブラウザーが行うことです。
--post302 の理由は、302 の後にリクエスト メソッドを変更せず、代わりに次の URL にも POST を送信する、仕様に準拠した方法を導入することでした。
最新の curl バージョンに更新せずに制限を回避する方法は、-L を使用せず、代わりにスクリプトを使用して 302 および Location:-following を実行し、次に 2 回目の curl 呼び出しを実行することです。 URL。
于 2013-03-23T18:26:58.183 に答える