java发送https忽略证书

 /**
     * 发送post请求
     * @param urlStr
     * @param param
     * @return
     */
    public static String doPostReq(String urlStr,String param){
        String result = "";
        BufferedReader bufferedReader = null;
        InputStream inputStream = null;
        try {
            trustAllHosts();
            URL url = new URL(urlStr);
            //HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            HttpURLConnection conn = null;
            // 通过请求地址判断请求类型(http或者是https)
            if (url.getProtocol().toLowerCase().equals("https")) {
                HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
                https.setHostnameVerifier(DO_NOT_VERIFY);
                conn = https;
            } else {
                conn = (HttpURLConnection) url.openConnection();
            }
            conn.setRequestMethod("POST");//设置请求方式
            conn.setConnectTimeout(15000);//设置连接超时时间
            conn.setReadTimeout(60000);//设置读取远程超时时间
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestProperty("Content-type","application/json; charset=utf-8");
            conn.setRequestProperty("Accept",
                    "text/xml,text/javascript,text/html,application/json");
            OutputStream outputStream = conn.getOutputStream();//通过连接对象获取输出流
            outputStream.write(param.getBytes());//通过输出流对象将参数传输出去,它是通过字节数组写出去的
            System.out.println("respCode:"+conn.getResponseCode());
            if (conn.getResponseCode() == 200){
                inputStream = conn.getInputStream();
                ByteArrayOutputStream baos=new ByteArrayOutputStream();
                byte[] buf = new byte[1024];
                int len = 0;
                while((len=inputStream.read(buf))!=-1){
                    baos.write(buf, 0, len);
                }
                baos.flush();
                result = baos.toString();
            }
//如果响应码是307则重新发起请求 if(307 == conn.getResponseCode()) { String redirectUrl = conn.getHeaderField("Location"); if(redirectUrl != null && !redirectUrl.isEmpty()) { urlStr = redirectUrl; return doPostReq(urlStr,param); } } }catch (Exception e){ e.printStackTrace(); }finally { try { if (null != bufferedReader){ bufferedReader.close(); } if (null != inputStream){ inputStream.close(); } }catch (IOException e){ e.printStackTrace(); } } return result; } private final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; 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(); } }