From 5f8e34ecc49e0fdb6e2a8d24b896f410f645b0e8 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 18 Jan 2017 17:20:46 +0800 Subject: [PATCH] update code --- platform-operate-api/pom.xml | 5 ++ .../operate/web/service/SyncDataTaskService.java | 39 +++++++++++++++ .../platform/operate/web/utils/HttpClientUtil.java | 57 ++++++++++++++++++++++ .../lyms/platform/operate/web/utils/SSLClient.java | 38 +++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SSLClient.java diff --git a/platform-operate-api/pom.xml b/platform-operate-api/pom.xml index 4a28f8a..7262b17 100644 --- a/platform-operate-api/pom.xml +++ b/platform-operate-api/pom.xml @@ -12,6 +12,11 @@ + org.apache.httpcomponents + httpclient + 4.5.2 + + commons-httpclient commons-httpclient diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java index 1aa6d50..42b9d51 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java @@ -6,6 +6,8 @@ import com.lyms.platform.common.pojo.SyncDataModel; import com.lyms.platform.common.pojo.UpdateMultiData; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.request.GuideQuery; +import com.lyms.platform.operate.web.utils.HttpClientUtil; +import com.lyms.platform.operate.web.utils.SSLClient; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.model.UsersQuery; import com.lyms.platform.permission.service.UsersService; @@ -19,6 +21,12 @@ import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.*; import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -81,6 +89,8 @@ public class SyncDataTaskService { } } + + public void qhdfySyncData() { try { HttpClient client = new HttpClient(); @@ -118,6 +128,35 @@ public class SyncDataTaskService { } } + /** + * 同步秦皇岛的数据到线上 + */ + public void qhdfySyncDataSSL() { + + try{ + StringBuffer ids = new StringBuffer(); + String json = HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) + { + List list = JsonUtil.toList(json, SyncDataModel.class); + for (SyncDataModel model : list) { + boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); + if (boo) { + ids.append(model.getId()); + ids.append(","); + } + } + if (ids.length() > 0) { + Map params = new HashMap(); + params.put("ids", ids.toString()); + HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/updateSyncData", params, "utf-8"); + } + } + }catch(Exception ex){ + ExceptionUtils.catchException(ex, "qhdfySyncDataSSL Error."); + } + } + private String buildFX(String charResult) { if (StringUtils.isNotBlank(charResult)) { if (charResult.indexOf("高风险") >= 0) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java new file mode 100644 index 0000000..cf9cfd5 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java @@ -0,0 +1,57 @@ +package com.lyms.platform.operate.web.utils; + +/** + * Created by Administrator on 2017-01-18. + */ +import java.util.*; +import java.util.Map.Entry; +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.HttpPost; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +/** + * 利用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 void main(String[] args) throws Exception { +// +// String s = doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); +// System.out.println(s); +// } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SSLClient.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SSLClient.java new file mode 100644 index 0000000..d3fb38b --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SSLClient.java @@ -0,0 +1,38 @@ +package com.lyms.platform.operate.web.utils; + +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +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; +//用于进行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 -- 1.8.3.1