package com.happy.Until; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.happy.Model.weixin.WeiXinUtil; import com.happy.common.http.MyX509TrustManager; import com.happy.common.wx.WxConfig; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.SSLContexts; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import javax.net.ssl.*; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.KeyStore; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; /** * http post 提交 和 get请求 * * @author QT-666 * */ public class HttpUtils { private static Integer READ_TIMEOUT = WxConfig.readTimeout; private static RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(15000).setConnectTimeout(15000) .setConnectionRequestTimeout(15000).build(); public static String get(String url, Map params) { CloseableHttpClient httpClient = null; HttpGet httpGet = null; String re = ""; try { httpClient = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(20000).setConnectTimeout(20000).build(); String ps = ""; for (String pKey : params.keySet()) { if (!"".equals(ps)) { ps = ps + "&"; } ps = pKey + "=" + params.get(pKey); } if (!"".equals(ps)) { url = url + "?" + ps; } httpGet = new HttpGet(url); httpGet.setConfig(requestConfig); CloseableHttpResponse response = httpClient.execute(httpGet); HttpEntity httpEntity = response.getEntity(); re = EntityUtils.toString(httpEntity, "utf-8"); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (httpGet != null) { httpGet.releaseConnection(); } if (httpClient != null) { httpClient.close(); } } catch (IOException e) { e.printStackTrace(); } } return re; } /** * 发送http post请求 * * @param * * @param * */ public static String post(String url, Map params) throws IOException { CloseableHttpClient httpClient = null; HttpPost httpPost = null; String re = ""; try { httpClient = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(20000).setConnectTimeout(20000).build(); httpPost = new HttpPost(url); httpPost.setConfig(requestConfig); List ps = new ArrayList(); for (String pKey : params.keySet()) { ps.add(new BasicNameValuePair(pKey, params.get(pKey))); } httpPost.setEntity(new UrlEncodedFormEntity(ps)); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity httpEntity = response.getEntity(); re = EntityUtils.toString(httpEntity, "utf-8"); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (httpPost != null) { httpPost.releaseConnection(); } if (httpClient != null) { httpClient.close(); } } catch (IOException e) { e.printStackTrace(); } } return re; } /** * 发送post请求Https,参数是字符串 * * @param * @return */ public static String post(String url, String body) throws Exception { String str = ""; CloseableHttpClient httpClient = null; HttpPost httpPost = null; try { httpClient = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(20000).setConnectTimeout(20000).build(); httpPost = new HttpPost(url); httpPost.setConfig(requestConfig); httpPost.setEntity(new StringEntity(body, "utf-8")); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity httpEntity = response.getEntity(); str = EntityUtils.toString(httpEntity, "utf-8"); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (httpPost != null) { httpPost.releaseConnection(); } if (httpClient != null) { httpClient.close(); } } catch (IOException e) { e.printStackTrace(); } } return str; } public static String post2(String url, String body) throws Exception { //商户号 //微信公众平台:“微信支付”--》“商户信息”--》“商户号”,将该值赋值给partner String partner = WeiXinUtil.account; //p12证书的位置 //微信公众平台:“微信支付”--》“商户信息”--》“交易数据”--》“详情请登录微信支付商户平台查看”(登录)--》“API安全”--》“API证书”--》“下载证书” //下载证书后将apiclient_cert.p12放在src目录下面(出于安全考虑,请自行下载自己的证书) String apiclient_certLocation = "/usr/mbin2/apiclient_cert.p12"; String str = ""; CloseableHttpClient httpClient = null; HttpPost httpPost = null; KeyStore keyStore = KeyStore.getInstance("PKCS12"); FileInputStream instream = new FileInputStream(new File(apiclient_certLocation));//P12文件目录 try { keyStore.load(instream, partner.toCharArray()); HttpsURLConnection httpsUrlConnection = null; //创建https请求证书 SSLContext sslcontext = SSLContexts.custom() .loadKeyMaterial(keyStore, partner.toCharArray())//这里也是写密码的 .build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslcontext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(20000).setConnectTimeout(20000).build(); httpPost = new HttpPost(url); httpPost.setConfig(requestConfig); httpPost.setEntity(new StringEntity(body, "utf-8")); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity httpEntity = response.getEntity(); str = EntityUtils.toString(httpEntity, "utf-8"); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { System.out.println("退款异常;"+e.getMessage()); e.printStackTrace(); } finally { try { if (httpPost != null) { httpPost.releaseConnection(); } if (httpClient != null) { httpClient.close(); } instream.close(); } catch (IOException e) { e.printStackTrace(); } } return new String(str.getBytes("iso-8859-1")); } public static String get(String strURL) throws Exception { URL url = new URL(strURL); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET"); httpConn.connect(); BufferedReader reader = new BufferedReader(new InputStreamReader( httpConn.getInputStream(), "utf-8")); String line; StringBuffer buffer = new StringBuffer(); while ((line = reader.readLine()) != null) { buffer.append(line); } reader.close(); httpConn.disconnect(); return buffer.toString(); } public static void main(String[] args) throws Exception { SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");// 设置日期格式 String time = df.format(new Date()); Map req = new HashMap<>(); req.put("operator_id", "000000002"); req.put("operator_secret", "SBC88d0ItR3w6oCTY"); req.put("data_secret", "Epc3hhs0imtVhPSu"); req.put("data_secret_iv", "r57m1sr8Tg2E302L"); req.put("sign_key", "ikAhygeGCRnEdhjgBKf"); req.put("timeStamp", time); req.put("seq", "0001"); String msg = post("http://183.129.139.222:10022/ems-share-api/queryToken", req); System.out.println("aaa: "+msg); } }