首页 >Java >java教程 >Java中如何确定重定向的URL?

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-11 12:33:03267浏览

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