From 2d03d8233e9bc59a1a27312bde4b508f0d47a425 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 22 Mar 2017 15:43:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=84=BF=E7=AB=A5=E4=BF=9D=E5=81=A5=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E9=A1=B5=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/common/utils/HttpClientUtil.java | 99 ++++++++++++++++++++++ .../com/lyms/platform/common/utils/SSLClient.java | 41 +++++++++ .../lyms/platform/data/util/AmsMessageService.java | 5 +- .../src/main/resources/config.properties | 4 +- .../operate/web/facade/AreaCountFacade.java | 3 +- 5 files changed, 147 insertions(+), 5 deletions(-) create mode 100644 platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java create mode 100644 platform-common/src/main/java/com/lyms/platform/common/utils/SSLClient.java diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java new file mode 100644 index 0000000..864cd4b --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/HttpClientUtil.java @@ -0,0 +1,99 @@ +package com.lyms.platform.common.utils; + +/** + * Created by Administrator on 2017-01-18. + */ + +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.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.util.*; +import java.util.Map.Entry; + +/** + * 利用HttpClient进行post请求的工具类 + */ +public class HttpClientUtil { + + public static String doPost(String url,Map map,String charset){ + HttpClient httpClient = null; + HttpPost httpPost = null; + String result = null; + try{ + httpClient = new SSLClient(); + httpPost = new HttpPost(url); + //设置参数 + List list = new ArrayList(); + Iterator iterator = map.entrySet().iterator(); + while(iterator.hasNext()){ + Entry elem = (Entry) 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; + } + + + public static String doGet(String url,Map params,String charset,String authorization){ + + StringBuffer sb = new StringBuffer(); + if(params!=null && !params.isEmpty()) { + Iterator keys = params.keySet().iterator(); + while(keys.hasNext()){ + String key = keys.next(); + String value = params.get(key); + if(sb.length()==0)sb.append("?"); + else sb.append("&"); + sb.append(key+"="+value); + } + } + + HttpClient httpClient = null; + HttpGet httpGet = null; + String result = null; + try{ + httpClient = new SSLClient(); + httpGet = new HttpGet(url+sb.toString()); + httpGet.addHeader("Authorization", authorization); + HttpResponse response = httpClient.execute(httpGet); + if(response != null){ + HttpEntity resEntity = response.getEntity(); + if(resEntity != null){ + result = EntityUtils.toString(resEntity,charset); + } + } + }catch(Exception ex){ + ex.printStackTrace(); + } + return result; + } + + public static void main(String[] args) throws Exception { + + long start = System.currentTimeMillis(); + String s = doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); + long end = System.currentTimeMillis(); + System.out.print(end -start); + System.out.println(s); + } +} \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/SSLClient.java b/platform-common/src/main/java/com/lyms/platform/common/utils/SSLClient.java new file mode 100644 index 0000000..d01f96d --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/SSLClient.java @@ -0,0 +1,41 @@ +package com.lyms.platform.common.utils; + +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.impl.client.DefaultHttpClient; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; + +//用于进行Https请求的HttpClient +public class SSLClient extends DefaultHttpClient{ + + public SSLClient() throws Exception{ + super(); + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, + String authType) throws CertificateException { + } + @Override + public void checkServerTrusted(X509Certificate[] chain, + String authType) throws CertificateException { + } + @Override + 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)); + } +} \ No newline at end of file diff --git a/platform-data-api/src/main/java/com/lyms/platform/data/util/AmsMessageService.java b/platform-data-api/src/main/java/com/lyms/platform/data/util/AmsMessageService.java index 93d8bf8..6b86a52 100644 --- a/platform-data-api/src/main/java/com/lyms/platform/data/util/AmsMessageService.java +++ b/platform-data-api/src/main/java/com/lyms/platform/data/util/AmsMessageService.java @@ -1,6 +1,7 @@ package com.lyms.platform.data.util; import com.lyms.platform.common.enums.AmsServiceTypeEnum; +import com.lyms.platform.common.utils.HttpClientUtil; import com.lyms.platform.common.utils.HttpRequest; import com.lyms.platform.common.utils.PropertiesUtils; import com.lyms.platform.common.utils.StringUtils; @@ -86,7 +87,7 @@ public class AmsMessageService { params, headers); //调用https用这个 - //String str = HttpClientUtil.doGet(AMS_URL,params,"utf-8",AUTHORIZATION); +// String str = HttpClientUtil.doGet(AMS_URL, params, "utf-8", AUTHORIZATION); // System.out.println(str); ObjectMapper om = new ObjectMapper(); MessageResponseEntity mre = null; @@ -188,7 +189,7 @@ public class AmsMessageService { public static void main(String[] args) { - Map> list = getMessageTemplateMap("248", + Map> list = getMessageTemplateMap("1000000014", AmsServiceTypeEnum.CHILD_GUIDE); List msgs = list.get("高血压"); diff --git a/platform-data-api/src/main/resources/config.properties b/platform-data-api/src/main/resources/config.properties index 2fc47e8..2e9912d 100644 --- a/platform-data-api/src/main/resources/config.properties +++ b/platform-data-api/src/main/resources/config.properties @@ -6,8 +6,8 @@ center_base_url=http://sms.api.stage.platform.healthbaby.com.cn/v1/ center_token=e0c56363-00d6-42ee-bbe0-23c553583062 #AMS地址 线上:http://data.api.healthbaby.com.cn/v1/messages 测试:http://data.api.stage.healthbaby.com.cn/v1/messages -#演示地址 https://stage-rp-ams-api.healthbaby.com.cn/v1/messages -ams_sms=http://data.api.healthbaby.com.cn/v1/messages +#演示地址 https://stage-rp-data-api.healthbaby.com.cn/v1/messages +ams_sms=http://data.api.stage.healthbaby.com.cn/v1/messages #短信当天发送时间 如16:00 send_time=16:00 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index 1bcf6f8..c528919 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -570,7 +570,8 @@ public class AreaCountFacade { } } sb.append(")"); - return sb.toString(); + return ""; + //return sb.toString(); } return null; -- 1.8.3.1