HttpPost postRequest = null; StringEntity input = null; HttpResponse response = null; BufferedReader br = null; String output = null; int timeout=600000; HttpURLConnection httpURLConnection = null; OutputStream outputStream = null; String body = ""; // 采用繞過驗證的方式處理https請求 SSLContext sslcontext = createIgnoreVerifySSL(); // 設置協議http和https對應的處理socket鏈接工廠的對象 Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", new SSLConnectionSocketFactory(sslcontext)).build(); PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry); HttpClients.custom().setConnectionManager(connManager); // 創建自定義的httpclient對象 CloseableHttpClient client = HttpClients.custom().setConnectionManager(connManager).build(); // CloseableHttpClient client = HttpClients.createDefault(); try { // 創建post方式請求對象 HttpPost httpPost = new HttpPost(strRestfulURL); // 指定報文頭Content-type、User-Agent // httpPost.setHeader("Content-type", "application/x-www-form-urlencoded"); // httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"); input = new UrlEncodedFormEntity("參數", "utf-8"); //input = new StringEntity(new String(IOUtils.toCharArray(objRequest.getInputStream())), "utf-8"); // 設置請求的內容 httpPost.setEntity(input); httpPost.setHeader(new BasicHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8")); // 設置期望服務端返回的編碼 httpPost.setHeader(new BasicHeader("Accept","text/plain;charset=utf-8")); // 執行請求操作,並拿到結果(同步阻塞) CloseableHttpResponse response1 = client.execute(httpPost); br = new BufferedReader(new InputStreamReader( (response1.getEntity().getContent()))); while ((output = br.readLine()) != null) { objResponse.getWriter().write(output); } objResponse.flushBuffer(); response1.close(); System.out.println("body:" + body); }catch( IOException e){ e.printStackTrace(); } finally { client.close(); } public static SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException { SSLContext sc = SSLContext.getInstance("SSLv3"); // 實現一個X509TrustManager接口,用於繞過驗證,不用修改里面的方法 X509TrustManager trustManager = new X509TrustManager() { @Override public void checkClientTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { } @Override public void checkServerTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate, String paramString) throws CertificateException { } @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } }; sc.init(null, new TrustManager[] { trustManager }, null); return sc; }