这篇文章主要介绍Java如何获取网络302重定向URL的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
方法1:
import java.net.HttpURLConnection;import java.net.URL; import org.junit.Assert;import org.junit.Test; public class GetRedirectUrlTest { @Test public void test_getRedirectUrl() throws Exception { String url="http://www.baidu.com/link?url=ByBJLpHsj5nXx6DESXbmMjIrU5W4Eh0yg5wCQpe3kCQMlJK_RJBmdEYGm0DDTCoTDGaz7rH80gxjvtvoqJuYxK"; String expectUrl="http://www.zhihu.com/question/20583607/answer/16597802"; String redictURL = getRedirectUrl(url); Assert.assertEquals(expectUrl, redictURL); } /** * 获取重定向地址 * @param path * @return * @throws Exception */ private String getRedirectUrl(String path) throws Exception { HttpURLConnection conn = (HttpURLConnection) new URL(path) .openConnection(); conn.setInstanceFollowRedirects(false); conn.setConnectTimeout(5000); return conn.getHeaderField("Location"); }}
方法2:
/** * 处理跳转链接,获取重定向地址 * @param url 源地址 * @return 目标网页的绝对地址 */ public String getAbsUrl(String url){ CloseableHttpClient httpclient = HttpClients.createDefault(); HttpClientContext context = HttpClientContext.create(); HttpGet httpget = new HttpGet(url); CloseableHttpResponse response = null; String absUrl = null; try { response = httpclient.execute(httpget, context); HttpHost target = context.getTargetHost(); List<URI> redirectLocations = context.getRedirectLocations(); URI location = URIUtils.resolve(httpget.getURI(), target, redirectLocations); System.out.println("Final HTTP location: " + location.toASCIIString()); absUrl = location.toASCIIString(); }catch(IOException e){ e.printStackTrace(); }catch (URISyntaxException e) { e.printStackTrace(); }finally { try { httpclient.close(); response.close(); } catch (IOException e) { e.printStackTrace(); } } return absUrl; }
免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系QQ:712375056 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
Copyright © 2009-2021 56dr.com. All Rights Reserved. 特网科技 特网云 版权所有 珠海市特网科技有限公司 粤ICP备16109289号
域名注册服务机构:阿里云计算有限公司(万网) 域名服务机构:烟台帝思普网络科技有限公司(DNSPod) CDN服务:阿里云计算有限公司 中国互联网举报中心 增值电信业务经营许可证B2
建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站