Go HTTP クライアントでリダイレクトに従わない
リダイレクト応答を返す REST API と対話するとき、Go HTTP クライアントの動作を変更する特定の使用例では、リダイレクトを無視することが必要になる場合があります。この機能を実現する簡単で効果的な方法は次のとおりです。
http.Client の CheckRedirect 関数は、デフォルトのリダイレクト後の動作よりも優先されます。この関数をカスタマイズすることで、リダイレクトをいつ実行するかを決定できます。自動リダイレクトを防ぐには、代替実装を提供します。
CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }
この構成は、リダイレクト操作を回避するように HTTP パッケージに通知します。これは http.ErrUseLastResponse を返します。これは、本体がまだアクセス可能な状態で最新の応答を利用するようにパッケージに指示します。
この例では、次のようにクライアント構成を更新します。
client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, }
これを設定することで、構成を変更すると、スクリプトはエンドポイントへの接続を正常に確立し、さらなる処理のために HTTP Location ヘッダーを取得し、新しいリソースへのリダイレクトを回避します。この方法は、エラー処理を強制する代替ソリューションと比較して、より洗練されたエラーのないアプローチを提供します。
以上がGo HTTP クライアントでのリダイレクトを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。