首页 > Java > java教程 > 在 Java 中使用 URLConnection 时如何检索重定向的 URL?

在 Java 中使用 URLConnection 时如何检索重定向的 URL?

DDD
发布: 2024-11-06 18:22:03
原创
1039 人浏览过

How to Retrieve the Redirected URL When Using URLConnection in Java?

如何在 Java 中识别重定向的 URL

在 Java 中,URLConnection 类提供了一种与远程 URL 建立连接的便捷方法。然而,在涉及URL重定向的场景中,检索到的URL可能不是最终目的地。确定实际重定向的 URL 是一个挑战。本文讨论解决此问题的解决方案。

通过 URLConnection 访问 URL 时,服务器可能会发送一个中间响应,其中包含指示重定向 URL 的 Location 标头字段。但是,openConnection() 方法不会捕获此中间响应。

利用 getInputStream() 方法

要捕获重定向的 URL,getInputStream() 方法可以被利用。此方法启动连接过程并遵循任何 HTTP 重定向。因此,URLConnection 实例现在保存有关重定向 URL 的信息。

为了说明这一点,以下代码片段演示了如何检索重定向 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 处的内容。以下代码片段说明了这种方法:

HttpURLConnection con = (HttpURLConnection)(new URL(url).openConnection());
con.setInstanceFollowRedirects(false);
con.connect();
int responseCode = con.getResponseCode();
System.out.println("Response code: " + responseCode);
String location = con.getHeaderField("Location");
System.out.println("Redirected to: " + location);
登录后复制

以上是在 Java 中使用 URLConnection 时如何检索重定向的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板