当前位置: 首页 > 面试题库 >

如何使用HttpURLConnection获取重定向的URL和内容

宋正真
2023-03-14
问题内容

有时我的URL会重定向到新页面,因此我想获取新页面的URL。

这是我的代码

URL url = new URL("http://stackoverflow.com/questions/88326/");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setInstanceFollowRedirects(true);

System.out.println(conn.getURL().toString());

输出为:

stackoverflow.com/questions/88326/does-elmah-handle-caught-exceptions-as-
well

它对于网站效果很好,但是对于sears.com网站却无法正常工作。

如果我们输入URL打击:

http://www.sears.com/search=iphone

输出仍然是:

http://www.sears.com/search=iphone

但实际上,该页面将重定向到:

http://www.sears.com/tvs-electronics-phones-all-cell-phones/s-1231477012?keyword=iphone&autoRedirect=true&viewItems=25&redirectType=CAT_REC_PRED

我怎么解决这个问题?


问题答案:

实际上我们可以使用HttpClient,我们可以设置HttpClient.followRedirect(true)HttpClinent将处理重定向的事情。



 类似资料:
  • 问题内容: 在Python中,我使用urllib2打开一个URL。该URL重定向到另一个URL,该URL重定向到另一个URL。 我希望在每次重定向后打印出网址。 例如 -> =重定向到 A-> B-> C-> D 我想打印B,C和D的URL(A是已知的,因为它是起始URL)。 问题答案: 最好的方法可能是继承。深入Python的重定向一章可能会有所帮助。

  • 我正在尝试用以下方法重定向无效的URL 我不想使用解决浏览器支持问题。 我正在使用grunt serve进行本地前端开发和封装,并在生产中与spring boot一起运行。

  • 问题内容: 我正在向服务器发送请求,但它正在返回网页。有没有办法获取网页的网址呢? 问题答案: 您需要检查重定向并停止(捕获)它们。如果捕获重定向,则可以使用响应结构的定位方法获取重定向URL(重定向到该URL)。

  • 问题内容: 我正在使用ajax表单jquery插件通过ajax提交表单(在对话框中)。 这工作正常,然后我从服务器返回html响应。响应来自我无法修改的标准后重定向php页面。 有没有一种方法可以使用jquery(在ajax回调内部)获取此重定向的URL(最终的GET位置)? 问题答案: 我没有使用过您使用的插件,但是如果您使用jQuery Ajax命令 ,则会收到XMLHttpRequest对象

  • 问题内容: 我正在将Selenium与Python API和Firefox结合使用来执行一些自动操作,这是我的问题: 单击原始页面上的链接,比方说 a.com 我被重定向到 _b.com/some/path?arg=value_ 并立即将我再次重定向到最终地址 c.com 那么有没有办法使用Selenium Python API 获得中间重定向URL _b.com/some/path?arg=va

  • 问题内容: 我正在尝试通过使用nodejs request模块将我重定向到另一个页面的URL 。 梳理文档后,我找不到任何可以让我在重定向后检索网址的内容。 我的代码如下: 问题答案: 有两种非常简单的方法来获取重定向链中的最后一个URL。 uri是一个对象。uri.href包含带有查询参数的URL作为字符串。 该代码来自请求创建者对github问题的评论:https : //github.com