/**
 * 请求https
 * @Version 1.0.0
 * @Description
 */
public class CustomX509TrustManager implements X509TrustManager {

    @Override
    public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
        
    }

    @Override
    public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
        return new X509Certificate[0];
    }
}

  https请求:

/**
     * https请求
     * @param requestUrl
     * @param content
     * @return
     * @throws Exception
     */
    public static String httpsRequest(String requestUrl,String content)throws Exception{
        SSLContext sslContext = SSLContext.getInstance("SSL");
        TrustManager[] tm = {new CustomX509TrustManager()};
        sslContext.init(null, tm, new java.security.SecureRandom());
        //获取SSLSocketFactory对象
        SSLSocketFactory ssf=sslContext.getSocketFactory();
        URL url=new URL(requestUrl);
        HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
        conn.setDoOutput(true);
        conn.setDoInput(true);
        //需要设置这些参数,否则参数传递不到https定义的接口中
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("content-Type", "application/json");
        conn.setRequestProperty("user-agent",
                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
        //conn.setUseCaches(false);
        conn.setRequestMethod("POST");
        //设置当前实例使用的SSLSoctetFactory
        conn.setSSLSocketFactory(ssf);
        conn.connect();
        //往服务器端写内容
        if(null!=content){
            OutputStream os=conn.getOutputStream();
            os.write(content.getBytes("utf-8"));
            os.flush();
            os.close();
        }

        //读取服务器端返回的内容
        InputStream is=conn.getInputStream();
        InputStreamReader isr=new InputStreamReader(is,"utf-8");
        BufferedReader br=new BufferedReader(isr);
        StringBuffer buffer=new StringBuffer();
        String line=null;
        while((line=br.readLine())!=null){
            buffer.append(line);
        }
        return buffer.toString();
    }

  

posted on 2020-04-16 13:51  lazyli  阅读(225)  评论(0编辑  收藏  举报