java 訪問 https,unable to find valid certification path to requested target
阿新 • • 發佈:2019-02-05
package com.zt.nyfac; import com.google.gson.Gson; import com.zt.JDBC; import com.zt.prices.Collection; import org.apache.log4j.Logger; import javax.net.ssl.*; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.*; /*** * https get demo * */ public class FindByCode { private static String url="https://www.baidu.com"; //main public static void main(String args[]){ String content= get(url); System.out.println(content); } //log private static Logger log = Logger.getLogger(Collection.class); private static void log(String info){ log.info(info); } /** * Trust every server - dont check for any certificate */ private static void trustAllHosts() { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { 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) { } } }; // Install the all-trusting trust manager try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e) { e.printStackTrace(); } } //no verify final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; //https public static String get(String request){ StringBuffer tempStr = new StringBuffer(); HttpsURLConnection conn = null; try{ trustAllHosts(); //request ssl URL url = new URL(request); conn = (HttpsURLConnection)url.openConnection(); conn.addRequestProperty("Accept","*/*"); conn.addRequestProperty("Accept-Encoding", "gzip,deflate,sdch"); conn.addRequestProperty("Accept-Language","zh-CN,zh;q=0.8"); conn.addRequestProperty("Cache-Control","max-age=0"); conn.addRequestProperty("Connection","keep-alive"); conn.addRequestProperty("Host","nc.mofcom.gov.cn"); conn.addRequestProperty("Content-Type","application/x-www-form-urlencoded"); conn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"); //https conn.setHostnameVerifier(DO_NOT_VERIFY); conn.connect(); InputStream in = conn.getInputStream(); conn.setReadTimeout(10*1000); BufferedReader rd = new BufferedReader(new InputStreamReader(in, "UTF-8")); String tempLine; while ((tempLine = rd.readLine()) != null) { tempStr.append(tempLine); } rd.close(); in.close(); return tempStr.toString(); }catch (Exception e){ e.printStackTrace(); }finally { if(conn!=null) conn.disconnect(); } return null; } }