java 怎么做302重定向_利用Java怎么获取302重定向后的URL
利用Java怎么获取302重定向后的URL
发布时间:2021-01-22 16:59:02
来源:亿速云
阅读:57
作者:Leah
本文向大家介绍了如何使用Java获取302重定向后的URL。内容简洁明了且易于理解的信息相信会让您留下深刻的印象。通过本文的详细解析与分享希望你能有所收获。
本文向大家介绍了如何使用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 链接 = "访问百度搜索结果页面并包含参数uurl";
链接 = "http://www.baidu.com/link/url";
其中uurl = 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 redirectLocations = context.getRedirectLocations();
从httpget获取其对应的URI路径,并使用URIUtils的resolve方法计算出目标位置的位置信息
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;
}
在Java中获取302重定向后的URL就是说具体来说你们是否学到了相关的知识和技能呢?如果还想进一步学习更多技能并丰富自己的知识储备欢迎关注亿速云行业资讯频道
