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

Linda Hamilton
リリース: 2024-11-10 22:38:02
オリジナル
721 人が閲覧しました

How to Determine the Final URL After Redirects in Go?

Go でのリダイレクト後の最終 URL の決定

Go の net/http パッケージでは、GET または POST リクエストを行うときに、次のような状況が発生する可能性があります。サーバーはリダイレクトで応答します。これを自動的に処理するために、クライアントはバックグラウンドでリダイレクトを透過的に実行します。ただし、このため、一連のリダイレクト後に到達した最終 URL を判断することが困難になる可能性があります。

幸いなことに、Go は、最終 URL を取得するためのシンプルで効果的なソリューションを提供します。 HTTP 応答内の Request オブジェクトには、クライアントが試行した最終 URL が含まれています。

最終 URL を取得する方法を示す例は次のとおりです。

package main

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

func main() {
    // Perform the request. It could go through multiple redirections.
    resp, err := http.Get("http://example.com/path/to/resource")
    if err != nil {
        log.Fatalf("http.Get => %v", err.Error())
    }

    // Extract the final URL from the request in the response.
    finalURL := resp.Request.URL.String()

    fmt.Println("The final URL reached is:", finalURL)
}
ログイン後にコピー

このコードでは、Request オブジェクトHTTP 応答内の には、すべてのリダイレクトが発生した後の最終 URL が保持されます。プログラムは、この最終 URL をコンソールに出力します。

このアプローチは、ハッキング的な回避策を使用するよりもクリーンで、クライアントが最後にアクセスした URL に直接アクセスできます。これにより、必要に応じてリダイレクト チェーン全体を簡単に追跡および記録できるようになります。

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

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