【发布时间】:2018-06-29 01:40:39
【问题描述】:
如果你在浏览器中搜索https://www.uncox.com/这样的网站,浏览器会加载地址https://learn.uncox.com/。当我打印响应代码时,服务器返回 200 !!!。不是 300 并且...并且标头位置值为空。
现在我的问题是,如何使用 Java 从 URL 中获取最新的 URL(浏览器最后会加载的 URL)?
【问题讨论】:
标签: java
如果你在浏览器中搜索https://www.uncox.com/这样的网站,浏览器会加载地址https://learn.uncox.com/。当我打印响应代码时,服务器返回 200 !!!。不是 300 并且...并且标头位置值为空。
现在我的问题是,如何使用 Java 从 URL 中获取最新的 URL(浏览器最后会加载的 URL)?
【问题讨论】:
标签: java
这在浏览器中实现的方式(我正在简化很多)是服务器将发送 HTTP 代码 301(永久重定向)或 302(临时重定向)用于针对 https://www.uncox.com/ 的请求,并带有 URL重定向到的地址。您可以在您的 Java 代码中镜像此过程,以遵循重定向链,直到您获得与 301/302 不同的结果代码。这不是一个万无一失的过程,并且需要您的代码可以访问互联网,但这是实时掌握此信息的唯一方法。
编辑:在列表中包含 HTTP 代码 303(请参阅其他)。无论哪种方式,它都在重复的问题中进行了详细解释。
【讨论】:
HttpURLConnection,请致电setInstanceFollowRedirects(false),否则它将自动跟随30x 代码。还可以在那里查看 amobiz 的答案,以获得替代(而且,恕我直言,漂亮)解决方案