Java获取网页重定向后的真实地址

0

最近做了个功能需要到百度抓取网页下来,但是百度和百度新闻不一样,网页结果的地址是百度的一个地址,统计了信息后再做重定向,那么如何通过该地址获取到,网页真实的地址呢?

在网上找到了一个答案:

URL url = new URL("http://www.baidu.com/link?url=YvFbRiD8vlW77HC4JgvgDd81Cdrl-XvY-SZV4ce_x60n3LjDU1QkB4ann7m_mIw6"); // 可以换成其他任何的地址
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setInstanceFollowRedirects(false); // 设置是否自动重定向
System.out.println(connection.getHeaderField("Location"));
System.out.println(IOUtils.toString(connection.getInputStream()));

原理:重定向是获取头信息里面Location字段进行跳转的,所以不自动跳转,然后就可以获取真实地址了。

参考文章:http://blog.csdn.net/mshopping/article/details/19151799