1

タイトルはほとんどそれをすべて言います。オプション-Lを使用して cURL がリダイレクトに従うよう強制していますが、サーバーは POST を GET に変換しています。--post302修正しましたが、必要なバージョン 7.19+ にアクセスできません。別のオプション セットでその動作を再現できますか?

4

1 に答える 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 に答える