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 サイトの他の関連記事を参照してください。