Browse Source

JSON格式化处理

zhouy 2 years ago
parent
commit
e191534cb0

+ 4 - 3
src/main/java/com/uas/eis/task/PnsDataSyncTask.java

@@ -10,6 +10,7 @@ import com.uas.eis.entity.PNSSendResp;
 import com.uas.eis.utils.FlexJsonUtil;
 import com.uas.eis.utils.HttpUtil;
 import com.uas.eis.utils.StringUtil;
+import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,7 +48,7 @@ public class PnsDataSyncTask {
         int pages = a + (b>0?1:0);
         HashMap<String, String> reqHeader = new HashMap<>();
         reqHeader.put("fromsys","ISP");
-        Map<String, String> pageReq = new HashMap<>();
+         JSONObject pageReq = new JSONObject();
          pageReq.put("if_name","ISPP-PSI-UPLOAD");
          pageReq.put("if_key" , pnsConfig.getIf_key());
          pageReq.put("total_page", String.valueOf(pages));
@@ -62,9 +63,9 @@ public class PnsDataSyncTask {
                 pageReq.put("current_data_count", String.valueOf(pageSize));
                 pageReq.put("detail", JSONArray.toJSONString(saleUploads.subList(i*pageSize, (i+1)*pageSize),SerializerFeature.WriteMapNullValue));
             }
-            logger.info("{}",pageReq);
+            logger.info("{}",pageReq.toString());
             try {
-               HttpUtil.Response response = HttpUtil.sendPostRequest(pnsConfig.getRoute(), reqHeader, pageReq, false);
+               HttpUtil.Response response = HttpUtil.sendPostRequest(pnsConfig.getRoute(), reqHeader, pageReq.toString());
                logger.info("{}",response.getResponseText());
                 if (response.getStatusCode() == HttpStatus.OK.value()) {
                     String data = response.getResponseText();

+ 42 - 0
src/main/java/com/uas/eis/utils/HttpUtil.java

@@ -214,6 +214,10 @@ public class HttpUtil {
 		return sendRequest(RequestMethod.POST, url, header, params, sign, null);
 	}
 
+	public static Response sendPostRequest(String url, HashMap<String, String> header, String body) throws Exception {
+		return sendRequest(RequestMethod.POST, url, header, body, false, null);
+	}
+
 	/**
 	 * 发送POST请求
 	 * 
@@ -479,7 +483,45 @@ public class HttpUtil {
 		}
 		}
 	}
+	public static Response sendRequest(RequestMethod method, String url, HashMap<String, String> header, String body, boolean sign, String signKey)
+			throws Exception {
 
+		HttpPost request = new HttpPost(getRequestUrl(url, sign, signKey));
+		for (Map.Entry<String, String> entry : header.entrySet()) {
+			request.setHeader(entry.getKey(), entry.getValue());
+		}
+		//采用绕过验证的方式处理https请求
+		SSLContext sslcontext = createIgnoreVerifySSL();
+
+		// 设置协议http和https对应的处理socket链接工厂的对象
+		Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
+				.register("http", PlainConnectionSocketFactory.INSTANCE)
+				.register("https", new SSLConnectionSocketFactory(sslcontext))
+				.build();
+		PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
+		HttpClients.custom().setConnectionManager(connManager);
+
+		//创建自定义的httpclient对象
+		CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager).build();
+		CloseableHttpResponse response = null;
+		try {
+			request.setEntity(new StringEntity(body));
+			response = httpClient.execute(request);
+			return Response.getResponse(response);
+		} finally {
+			request.releaseConnection();
+			try {
+				httpClient.close();
+			} catch (IOException e) {
+			}
+			if (response != null) {
+				try {
+					response.close();
+				} catch (IOException e) {
+				}
+			}
+		}
+	}
 	/**
 	 * 发起http请求
 	 *