ホームページ >バックエンド開発 >Golang >Go HTTP クライアントでのリダイレクトを防ぐにはどうすればよいですか?

Go HTTP クライアントでのリダイレクトを防ぐにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-21 06:44:13577ブラウズ

How Can I Prevent Redirects with the Go HTTP Client?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。