java net https擷取302跳轉後地址

來源:互聯網
上載者:User
package com.url.test;


import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.cert.X509Certificate;


import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;


import org.apache.commons.lang3.StringUtils;


public class UrlPrase {


//擷取http 連結  302跳轉後的 地址
public static String getHttp(String url) throws IOException {
URL realUrl = new URL(url);
// 開啟和URL之間的串連
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
// 設定通用的請求屬性
conn.setRequestMethod("GET");
conn.addRequestProperty("Accept-Charset", "UTF-8;");
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setInstanceFollowRedirects(false);
// 建立實際的串連
conn.connect();
String location = conn.getHeaderField("Location");
if (!StringUtils.isBlank(location)) {
return getHttp(location);
} else {
return url;
}
}
//擷取http,https 連結  302跳轉後的 地址
public static String get(String url) throws IOException{
URL realUrl = new URL(url);
TrustManager[] tm = { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}


public void checkClientTrusted(X509Certificate[] chain, String authType) {


}


public void checkServerTrusted(X509Certificate[] chain, String authType) {


}
} };
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, tm, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}


HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();


// 設定通用的請求屬性
conn.setRequestMethod("GET");
conn.addRequestProperty("Accept-Charset", "UTF-8;");


conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setInstanceFollowRedirects(false);
conn.setConnectTimeout(3000);
conn.setReadTimeout(5000);
// 建立實際的串連
conn.connect();


/*
InputStream inputStream = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
String readLine = reader.readLine();
StringBuffer sb = new StringBuffer();
while(readLine != null){
sb.append(readLine);
readLine = reader.readLine();
}
System.out.println(sb.toString());
if(reader !=null){
reader.close();
}*/
String location = conn.getHeaderField("Location");
if (!StringUtils.isBlank(location)) {
return get(location);
} else {
return url;
}
}


public static void main(String[] args) {
String url = "https://e.cn.miaozhen.com/r/k=2036534&p=74ZOF&dx=__IPDX__&rt=2&ns=__IP__&ni=__IESID__&v=__LOC__&xa=__ADPLATFORM__&o=https://as.kejet.net/REJCRTdGOUZBQ0Y2OUExNEFDNzlBNTc2MDgyM0Q0?u/QkE2NjU1MTJFQzIyMThB/o/REJCRTdGOUZBQ0Y2OUEx/m/NEFDNzlBNTc2MDgyM0Q0/q/afaclick?https://topic.m.autohome.com.cn/marketing/2016/12/MGGS/";
// String url ="http://trk.maxuscloud.com/c?ev=type:ac`acid=pilot`on=cpid:CC80027;cid:;mpid:Campaign001_display_01;adfmt:textlink`at=aid:autohome03;mdm:display;src:;pubid:autohome;mdmdt:pc`go=http%3a%2f%2fsales.saicmaxus.com%2fp%2fpages%2forderV8003.html";
// String url ="https://kyfw.12306.cn/otn/login/init";
try {
// String finalUrl = getHttp(url);
String finalUrl = get(url);
System.out.println(finalUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.