/** * */ package com.cnd3b.utility; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; /** * @author SJW * */ public class WebRequest { public String doPost(String content, String url) { PrintWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); HttpURLConnection conn = null; try { URL realUrl = new URL(url); // 打开和URL之间的连接 conn = (HttpURLConnection) realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setConnectTimeout(8000); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8)); out.print(content); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!"); } finally {// 使用finally块来关闭输出流、输入流 if (out != null) { out.close(); out = null; } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } in = null; } if (conn != null) { conn.disconnect(); conn = null; } } return result.toString(); } public String doPostKuJiaLe(String content, String url) { PrintWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); HttpURLConnection conn = null; try { URL realUrl = new URL(url); // 打开和URL之间的连接 conn = (HttpURLConnection) realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); conn.setConnectTimeout(8000); conn.setDoOutput(true); conn.setDoInput(true); out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8)); out.print(content); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!"); } finally {// 使用finally块来关闭输出流、输入流 if (out != null) { out.close(); out = null; } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } in = null; } if (conn != null) { conn.disconnect(); conn = null; } } return result.toString(); } public void doGet_simple(String url) { HttpsURLConnection conn = null; try { URL realUrl = new URL(url); trustAllHttpsCertificates(); HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { // TODO Auto-generated method stub System.out.println("Warning: URL Host: " + hostname + " vs. " + session.getPeerHost()); return true; } }); conn = (HttpsURLConnection) realUrl.openConnection(); conn.setConnectTimeout(8000); conn.getResponseCode(); } catch (Exception e) { e.printStackTrace(); System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!"); } finally {// 使用finally块来关闭输出流、输入流 if (conn != null) { conn.disconnect(); } } } public String doGet(String url) { PrintWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); HttpsURLConnection conn = null; try { URL realUrl = new URL(url); trustAllHttpsCertificates(); HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { // TODO Auto-generated method stub System.out.println("Warning: URL Host: " + hostname + " vs. " + session.getPeerHost()); return true; } }); // 打开和URL之间的连接 conn = (HttpsURLConnection) realUrl.openConnection(); conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setConnectTimeout(8000); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); System.err.println("[POST请求]向地址:" + url + " 发送数据:发生错误!"); } finally {// 使用finally块来关闭输出流、输入流 if (out != null) { out.close(); out = null; } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } in = null; } if (conn != null) { conn.disconnect(); conn = null; } } return result.toString(); } private static void trustAllHttpsCertificates() throws Exception { javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; javax.net.ssl.TrustManager tm = new miTM(); trustAllCerts[0] = tm; javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, null); javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) { return true; } public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) { return true; } public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) throws java.security.cert.CertificateException { } public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) throws java.security.cert.CertificateException { } } }