如何在Java 中識別重定向的URL
在Java 中,URLConnection 類別提供了一種與遠端URL 建立連接的便捷方法。然而,在涉及URL重定向的場景中,檢索到的URL可能不是最終目的地。確定實際重新導向的 URL 是一個挑戰。本文討論解決此問題的解決方案。
透過 URLConnection 存取 URL 時,伺服器可能會發送一個中間回應,其中包含指示重定向 URL 的 Location 標頭欄位。但是,openConnection() 方法不會擷取此中間回應。
利用 getInputStream() 方法
要捕獲重定向的 URL,getInputStream() 方法可以被利用。此方法啟動連接程序並遵循任何 HTTP 重定向。因此,URLConnection 實例現在保存有關重定向 URL 的資訊。
為了說明這一點,以下程式碼片段示範如何擷取重定向內容擷取之前
URLConnection con = new URL(url).openConnection(); System.out.println("Original URL: " + con.getURL()); con.connect(); System.out.println("Connected URL: " + con.getURL()); InputStream is = con.getInputStream(); System.out.println("Redirected URL: " + con.getURL()); is.close();
在某些情況下,可能需要在取得重定向URL 處的內容之前確定是否發生重定向。以下程式碼片段說明了這種方法:
以上是在 Java 中使用 URLConnection 時如何檢索重定向的 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!