【问题标题】:How can I get final URL (the URL that will be loaded by the browser at the end) from a URL? [duplicate]如何从 URL 获取最终 URL(最终将由浏览器加载的 URL)? [复制]
【发布时间】:2018-06-29 01:40:39
【问题描述】:

如果你在浏览器中搜索https://www.uncox.com/这样的网站,浏览器会加载地址https://learn.uncox.com/。当我打印响应代码时,服务器返回 200 !!!。不是 300 并且...并且标头位置值为空。

现在我的问题是,如何使用 Java 从 URL 中获取最新的 URL(浏览器最后会加载的 URL)?

【问题讨论】:

    标签: java


    【解决方案1】:

    这在浏览器中实现的方式(我正在简化很多)是服务器将发送 HTTP 代码 301(永久重定向)或 302(临时重定向)用于针对 https://www.uncox.com/ 的请求,并带有 URL重定向到的地址。您可以在您的 Java 代码中镜像此过程,以遵循重定向链,直到您获得与 301/302 不同的结果代码。这不是一个万无一失的过程,并且需要您的代码可以访问互联网,但这是实时掌握此信息的唯一方法。

    编辑:在列表中包含 HTTP 代码 303(请参阅其他)。无论哪种方式,它都在重复的问题中进行了详细解释。

    【讨论】:

    • 但是当我打印响应代码时,服务器返回 200。不是 300+
    • @Hadi 检查链接问题的答案。基本上,如果您使用HttpURLConnection,请致电setInstanceFollowRedirects(false),否则它将自动跟随30x 代码。还可以在那里查看 amobiz 的答案,以获得替代(而且,恕我直言,漂亮)解决方案
    • 好的,我试试。非常感谢。
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多