Golang でのリダイレクト後の最終 URL の決定
Golang の net/http パッケージでは、HTTP GET リクエストでリダイレクトが発生する可能性があります。最初のリクエストとは異なる最終宛先 URL に送信されます。この苦境により、面倒な回避策に頼ることなく、一連のリダイレクト後に到達した最終 URL をどのように判断できるかという疑問が生じます。
解決策
という仮定に反して、ハック的なアプローチが必要な場合は、HTTP GET 操作によって返される Response オブジェクト内にクリーンで単純なソリューションが存在します。このオブジェクトは、リクエストを開始した Request オブジェクトを保持します。これにより、アクセスした最終 URL へのアクセスが提供されます。
import ( "fmt" "log" "net/http" ) func main() { resp, err := http.Get("http://stackoverflow.com/q/16784419/727643") if err != nil { log.Fatalf("http.Get => %v", err.Error()) } // Function to retrieve the final URL finalURL := resp.Request.URL.String() fmt.Printf("The URL you ended up at is: %v", finalURL) }
出力:
The URL you ended up at is: http://stackoverflow.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects
このメソッドにより、最終 URL を簡単に取得できます。任意の数のリダイレクトの後。追加のカスタマイズやグローバル変数の操作は必要なく、クリーンで効率的な実装が保証されます。
以上がGolang でリダイレクト後の最終 URL を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。