import org.apache.commons.lang.StringUtils;
import javax.net.ssl.*;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class HttpsUtils {
private static class TrustAnyTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s)
throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
/**
* post方式请求服务器(https协议)
*
* @param url 请求地址
* @param content 参数
* @param charset 编码
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
* @throws IOException
*/
public static String getter(String url, String content, String charset) throws IOException {
return getter(url, content, charset, "");
}
public static String getter(String url, String content, String charset, String cookie)
throws IOException {
String result = "";
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL realUrl = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestMethod("GET");
if (StringUtils.isNotBlank(cookie)) {
conn.setRequestProperty("Cookie", cookie);
}
result = HttpUtils.streamToString(conn.getInputStream());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
return result;
}
public static HttpsURLConnection getConnectionStream(String url, String content, String charset)
throws IOException {
return getConnectionStream(url, content, charset, "");
}
public static HttpsURLConnection getConnectionStream(
String url, String content, String charset, String cookie) throws IOException {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL realUrl = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestMethod("GET");
setProperty(charset, conn, cookie);
return conn;
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
}
public static String post(String url, String content, String charset) throws IOException {
return post(url, content, charset, "");
}
/**
* post方式请求服务器(https协议)
*
* @param url 请求地址
* @param content 参数
* @param charset 编码
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
* @throws IOException
*/
public static String post(String url, String content, String charset, String cookie)
throws IOException {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
setProperty(charset, conn, cookie);
conn.setRequestMethod("POST");
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setDoOutput(true);
conn.connect();
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.write(content.getBytes(charset));
out.flush();
out.close();
return HttpUtils.streamToString(conn.getInputStream());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
}
private static void setProperty(String encoding, URLConnection conn, String cookie) {
conn.setRequestProperty("Accept-Charset", encoding);
conn.setRequestProperty(
"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("user-agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1;SV1)");
if (StringUtils.isNotBlank(cookie)) {
conn.setRequestProperty("Cookie", cookie);
}
// conn.setRequestProperty("Access-Control-Allow-Origin", "*");
}
public static void main(String[] args) {
// String
// url="https://www.sgs.gov.cn/notice/security/verify_captcha?captcha=至理名言&session.token=53600ad5-ba92-4fec-b22d-f228abb12041";
// String
// url="https://www.sgs.gov.cn/notice/notice/view?uuid=wwBJKCG0CACM_U78S47KMaySPopYlbbA&tab=01";
String url = "https://www.sgs.gov.cn/notice/search/popup_captcha";
try {
// String result = HttpsUtil.getter(url, "", "utf-8");
// String result ="";
// System.out.println("result-===================>" + result);
//
// String temp = HttpUtil.filterHtml(result,
// "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>");
// System.out.println("temp-===================>" + temp);
// String tag = "global.token";
// int begin = temp.indexOf(tag)+tag.length();
// int end = temp.indexOf("</script>");
// String data = temp.substring(begin, end).trim();
//
// System.out.println("data-===================>" + data);
// begin = data.indexOf("code")+4;
// end = data.indexOf("data");
// String code = data.substring(begin, end).replace("\"",
// "").replace(",","");
// System.out.println("code-===================>" + code);
url =
"https://www.sgs.gov.cn/notice/search/ent_info_list?searchType=1&captcha=5&session.token=cbaeb368-fe3a-4ec0-badc-73a0af24142e&condition.keyword=310225000577587";
String result = HttpsUtils.getter(url, "", "utf-8");
System.out.println("result-===================>" + result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
import javax.net.ssl.*;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class HttpsUtils {
private static class TrustAnyTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s)
throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
/**
* post方式请求服务器(https协议)
*
* @param url 请求地址
* @param content 参数
* @param charset 编码
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
* @throws IOException
*/
public static String getter(String url, String content, String charset) throws IOException {
return getter(url, content, charset, "");
}
public static String getter(String url, String content, String charset, String cookie)
throws IOException {
String result = "";
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL realUrl = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestMethod("GET");
if (StringUtils.isNotBlank(cookie)) {
conn.setRequestProperty("Cookie", cookie);
}
result = HttpUtils.streamToString(conn.getInputStream());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
return result;
}
public static HttpsURLConnection getConnectionStream(String url, String content, String charset)
throws IOException {
return getConnectionStream(url, content, charset, "");
}
public static HttpsURLConnection getConnectionStream(
String url, String content, String charset, String cookie) throws IOException {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL realUrl = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setRequestMethod("GET");
setProperty(charset, conn, cookie);
return conn;
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
}
public static String post(String url, String content, String charset) throws IOException {
return post(url, content, charset, "");
}
/**
* post方式请求服务器(https协议)
*
* @param url 请求地址
* @param content 参数
* @param charset 编码
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
* @throws IOException
*/
public static String post(String url, String content, String charset, String cookie)
throws IOException {
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(
null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
setProperty(charset, conn, cookie);
conn.setRequestMethod("POST");
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.setDoOutput(true);
conn.connect();
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.write(content.getBytes(charset));
out.flush();
out.close();
return HttpUtils.streamToString(conn.getInputStream());
} catch (KeyManagementException | NoSuchAlgorithmException e) {
throw new IOException(e);
}
}
private static void setProperty(String encoding, URLConnection conn, String cookie) {
conn.setRequestProperty("Accept-Charset", encoding);
conn.setRequestProperty(
"Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
conn.setRequestProperty("Connection", "keep-alive");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("user-agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1;SV1)");
if (StringUtils.isNotBlank(cookie)) {
conn.setRequestProperty("Cookie", cookie);
}
// conn.setRequestProperty("Access-Control-Allow-Origin", "*");
}
public static void main(String[] args) {
// String
// url="https://www.sgs.gov.cn/notice/security/verify_captcha?captcha=至理名言&session.token=53600ad5-ba92-4fec-b22d-f228abb12041";
// String
// url="https://www.sgs.gov.cn/notice/notice/view?uuid=wwBJKCG0CACM_U78S47KMaySPopYlbbA&tab=01";
String url = "https://www.sgs.gov.cn/notice/search/popup_captcha";
try {
// String result = HttpsUtil.getter(url, "", "utf-8");
// String result ="";
// System.out.println("result-===================>" + result);
//
// String temp = HttpUtil.filterHtml(result,
// "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>");
// System.out.println("temp-===================>" + temp);
// String tag = "global.token";
// int begin = temp.indexOf(tag)+tag.length();
// int end = temp.indexOf("</script>");
// String data = temp.substring(begin, end).trim();
//
// System.out.println("data-===================>" + data);
// begin = data.indexOf("code")+4;
// end = data.indexOf("data");
// String code = data.substring(begin, end).replace("\"",
// "").replace(",","");
// System.out.println("code-===================>" + code);
url =
"https://www.sgs.gov.cn/notice/search/ent_info_list?searchType=1&captcha=5&session.token=cbaeb368-fe3a-4ec0-badc-73a0af24142e&condition.keyword=310225000577587";
String result = HttpsUtils.getter(url, "", "utf-8");
System.out.println("result-===================>" + result);
} catch (IOException e) {
e.printStackTrace();
}
}
}