java 访问 https,unable to find valid certification path to requested target

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;
    }
}

猜你喜欢

转载自blog.csdn.net/qilin001cs/article/details/81205087