首頁  >  文章  >  Java  >  Java中如何決定重定向的URL?

Java中如何決定重定向的URL?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-11 12:33:03256瀏覽

How to Determine the Redirected URL in Java?

在 Java 中確定重定向的 URL

使用 URLConnection 訪問網頁時,經常會遇到重定向。當 URL 指向另一個目的地時,就會發生這種情況。要確定重新導向的 URL,我們需要了解 HTTP 重新導向的工作原理。

通常,伺服器會回應 3xx 狀態碼(例如 301、302),表示重新導向。回應包括指定新目的地的「Location」頭字段。但是,URLConnection 不會自動遵循重定向。

存取重新導向的 URL

要取得重新導向的 URL,我們可以在初始化後手動呼叫 URLConnection 上的 getInputStream()聯絡。此操作強制建立連接,伺服器發送最終回應,包括“Location”標頭。

URLConnection con = new URL(url).openConnection();
con.connect();
System.out.println("Original URL: " + con.getURL());
InputStream is = con.getInputStream();
System.out.println("Redirected URL: " + con.getURL());
is.close();

存取 Location 標頭

在某些情況下,我們可能會想在取得重定向的內容之前先造訪「Location」標頭。為此,我們可以使用 HttpURLConnection 並設定 setInstanceFollowRedirects(false):

HttpURLConnection con = (HttpURLConnection) (new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
System.out.println("Response code: " + con.getResponseCode());
String location = con.getHeaderField("Location");
System.out.println("Location header: " + location);

以上是Java中如何決定重定向的URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn