ホームページ >バックエンド開発 >Golang >Go でリダイレクト後に最終 URL を抽出するにはどうすればよいですか?

Go でリダイレクト後に最終 URL を抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-12 12:57:02472ブラウズ

How Do I Extract the Final URL After Redirects in Go?

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

Go の "net/http" パッケージでは、複数のリダイレクトを受ける URL を取得して、自動リダイレクト処理。ただし、ハック的な回避策を実装しないと、最終的な宛先 URL を決定するのは困難になる可能性があります。

解決策: 応答オブジェクトを利用する

幸いなことに、より洗練されたソリューションが存在します。 「http.Get」(または他の HTTP メソッド関数)によって返される「Response」オブジェクトには、最後に試行されたアクセスを表す「Request」フィールドが含まれています。これは、最終 URL を抽出するために利用できます。

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    // Initiate a GET request for a URL subject to redirects
    resp, err := http.Get("https://google.com") // Replace with the target URL
    if err != nil {
        log.Fatalf("http.Get -> %v", err)
    }

    // Retrieve the final URL using the last attempted Request in the Response
    finalURL := resp.Request.URL.String()

    // Output the resolved final URL
    fmt.Printf("The URL you ended up at is: %s", finalURL)
}

以上がGo でリダイレクト後に最終 URL を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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