Go の「http.Client」でリダイレクト後の最終 URL を取得する方法は?

Susan Sarandon
リリース: 2024-11-16 18:07:02
オリジナル
258 人が閲覧しました

How to Get the Final URL After Redirects in Go's `http.Client`?

Http.Go でのリダイレクト後の最終 URL の抽出

http.NewRequest を使用して HTTP リクエストを行うときに、次の操作が必要になる場合があります。リダイレクト後の最終 URL からクエリ文字列を抽出します。 Response オブジェクトは本質的に最終 URL へのアクセスを提供しません。

リダイレクト後に URL を取得するには:

  1. CheckRedirect コールバック内に匿名関数を作成します。
  2. 匿名関数内で、lastUrlQuery 変数をリダイレクトされた関数の RequestURI() に設定します。 request.
  3. リダイレクトを許可するには nil を返します。

このアプローチを示すコード スニペットを次に示します。

req, err = http.NewRequest("GET", URL, nil)
cl := http.Client{}
var lastUrlQuery string
cl.CheckRedirect = func(req *http.Request, via []*http.Request) error {
    if len(via) > 10 {
        return errors.New("too many redirects")
    }
    lastUrlQuery = req.URL.RequestURI()
    return nil
}
resp, err := cl.Do(req)
if err != nil {
    log.Fatal(err)
}
fmt.Printf("last url query is %v", lastUrlQuery)
ログイン後にコピー

この手法を使用すると、すべてのリダイレクトが発生した後の最終 URL。これにより、最終的な宛先からクエリ文字列やその他の情報にアクセスできるようになります。

以上がGo の「http.Client」でリダイレクト後の最終 URL を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート