package com.springboot.test; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.*; import java.util.Map.Entry; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; /** * https工具类 * * @author remainsu * 2019-05-05 */ public class HttpsUtil { public static void main(String[] args) { String url="https://open-gw-test.hisense.com/tms/wechat/selectDcode?user_key=3de5431d06f5d06696aee21af08159c2"; Map<String,String> map=new HashMap<>(); // map.put("carTel","15689926052"); // map.put("latitude","36.066111"); // map.put("longitude","120.38897200000001"); // map.put("scanCode","2031484"); // Object result=httpsPost(url,map); String json="{\n" + " \n" + "\"carTel\": \"15689926052\" ,\n" + "\"latitude\": 36.066111,\n" + "\"longitude\": 120.38897200000001,\n" + "\"scanCode\": \"2031484\" \n" + "}"; Object result=sendHttpsPostJsonData(url,json); System.out.println(">>>>result>>>>>>"+result); } /** * @Title: sendHttpsPostRequest * @Description: https发送POST请求(utf-8编码) * @param reqUrl 请求url * @param req 请求json数据 * @return */ public static String sendHttpsPostJsonData(String reqUrl, String req) { HttpClient httpClient = null; HttpPost httpPost = null; String result = null; try { httpClient = new SSLClient(); httpPost = new HttpPost(reqUrl); StringEntity entity = new StringEntity(req, "UTF-8"); entity.setContentType("application/json;charset=utf-8"); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); if (response != null) { HttpEntity resEntity = response.getEntity(); if (resEntity != null) { result = EntityUtils.toString(resEntity, "UTF-8"); } } } catch (Exception ex) { ex.printStackTrace(); } return result; } /** * post方式访问 * @param url 路径 * @param map 参数 * @return */ public static String httpsPost(String url, Map<String, String> map) { String charset = "UTF-8"; HttpClient httpClient = null; HttpPost httpPost = null; String result = null; try { httpClient = new SSLClient(); httpPost = new HttpPost(url); //设置参数 List<NameValuePair> list = new ArrayList<NameValuePair>(); Iterator iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, String> elem = (Entry<String, String>) iterator.next(); list.add(new BasicNameValuePair(elem.getKey(), elem.getValue())); } if (list.size() > 0) { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset); httpPost.setEntity(entity); } HttpResponse response = httpClient.execute(httpPost); if (response != null) { HttpEntity resEntity = response.getEntity(); if (resEntity != null) { result = EntityUtils.toString(resEntity, charset); } } } catch (Exception ex) { ex.printStackTrace(); } return result; } /** * get方式访问(如果有参数直接 ?xx&yy&zz 的方式即可) * @param url * @return */ public String httpsGet(String url) { String charset = "UTF-8"; HttpClient httpClient = null; HttpGet httpGet= null; String result = null; try { httpClient = new SSLClient(); httpGet = new HttpGet(url); HttpResponse response = httpClient.execute(httpGet); if(response != null){ HttpEntity resEntity = response.getEntity(); if(resEntity != null){ result = EntityUtils.toString(resEntity,charset); } } } catch (Exception e) { e.printStackTrace(); } return result; } } class SSLClient extends DefaultHttpClient { //用于进行Https请求的HttpClient public SSLClient() throws Exception { super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain,String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain,String authType) throws CertificateException { } public X509Certificate[] getAcceptedIssuers() {return null; } }; ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = this.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", 443, ssf)); } }
Https发送post 的json数据
原创
©著作权归作者所有:来自51CTO博客作者小飞侠格鲁帅的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:腾讯地图画圆
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java解析复杂嵌套式的JSON数据
java解析复杂嵌套式的JSON数据
JSON json 嵌套 -
HTTPS POST发送FORM 表单参数 返回 Json
HTTPS POST发送FORM 表单参数 返回 Json
https json apache java ide