ホームページ > バックエンド開発 > Golang > Go の http.NewRequest を使用してリダイレクト後の最終 URL を取得する方法

Go の http.NewRequest を使用してリダイレクト後の最終 URL を取得する方法

DDD
リリース: 2024-11-23 13:14:14
オリジナル
562 人が閲覧しました

How to Get the Final URL After Redirects Using Go's http.NewRequest?

Go の http.NewRequest でリダイレクト後の最終 URL を取得する方法

http.NewRequest で HTTP リクエストを行うときに、次のような状況が発生する可能性があります。ここでサーバーはリクエストをリダイレクトします。最終的な URL からクエリ文字列を抽出するには、リクエストが最終的に到達した URL を見つける必要があります。

http.Response オブジェクトに明示的なフィールドがないにもかかわらず、最終的なクエリ文字列を取得する方法があります。 URL:

匿名関数を使用してリダイレクトを確認する

匿名関数を使用して、キャプチャおよびリダイレクトを確認できます。最終的なリダイレクト URL を保存します。以下に例を示します。

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)
ログイン後にコピー

クライアントに提供される CheckRedirect 関数は、デフォルトのチェック リダイレクト メカニズムをラップします。リダイレクトの数をチェックし、最終的な URL クエリを lastUrlQuery 変数に保存します。リクエストの実行が完了すると、lastUrlQuery を介して最終 URL にアクセスできるようになります。

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

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