package cn.emay.sdk.util; import java.util.HashMap; import java.util.Map; import cn.emay.sdk.common.CommonConstants; import cn.emay.sdk.core.dto.sms.common.ResultModel; import cn.emay.sdk.util.http.client.EmayHttpClient; import cn.emay.sdk.util.http.common.EmayHttpResultCode; import cn.emay.sdk.util.http.request.impl.EmayHttpRequestBytes; import cn.emay.sdk.util.http.request.impl.EmayHttpRequestKV; import cn.emay.sdk.util.http.response.impl.string.EmayHttpResponseBytes; import cn.emay.sdk.util.http.response.impl.string.EmayHttpResponseBytesPraser; import cn.emay.sdk.util.http.response.impl.string.EmayHttpResponseString; import cn.emay.sdk.util.http.response.impl.string.EmayHttpResponseStringPraser; import cn.emay.sdk.util.json.JsonHelper; public class HttpUtil { private static String remoteSign = "SDK"; public static ResultModel request(String appId, String secretKey, String url, Object object, Class clazz) { String code = "SYSTEM";// 默认系统异常 T result = null; EmayHttpRequestBytes request = null; try { Map headers = new HashMap(); headers.put("appId", appId); headers.put("encode", "UTF-8"); headers.put("gzip", "on"); headers.put("remoteSign", remoteSign); byte[] bytes = JsonHelper.toJsonString(object).getBytes("UTF-8"); bytes = GZIPUtils.compress(bytes); byte[] parambytes = AES.encrypt(bytes, secretKey.getBytes(), CommonConstants.algorithm); request = new EmayHttpRequestBytes(url, "UTF-8", "POST", headers, null, parambytes); } catch (Exception e) { e.printStackTrace(); return new ResultModel(code, result); } try { EmayHttpClient client = new EmayHttpClient(); EmayHttpResponseBytes res = client.service(request, new EmayHttpResponseBytesPraser()); if (res == null) { return new ResultModel(code, result); } if (res.getResultCode().equals(EmayHttpResultCode.SUCCESS)) { if (res.getHttpCode() == 200) { code = res.getHeaders().get("result"); if (code.equals("SUCCESS")) { byte[] data = res.getResultBytes(); data = AES.decrypt(data, secretKey.getBytes(), CommonConstants.algorithm); data = GZIPUtils.decompress(data); String json = new String(data, "UTF-8"); result = JsonHelper.fromJson(clazz, json); } } else { return new ResultModel(code, result); } } else { return new ResultModel(code, result); } } catch (Exception e) { e.printStackTrace(); return new ResultModel(code, result); } return new ResultModel(code, result); } public static ResultModel request(Map params, String url, String encode, Class clazz) { String code = "SYSTEM";// 默认系统异常 T result = null; EmayHttpRequestKV request = new EmayHttpRequestKV(url, encode, "POST", null, null, params); EmayHttpClient client = new EmayHttpClient(); String json = null; try { String mapst = ""; for (String key : params.keySet()) { String value = params.get(key); mapst += key + "=" + value + "&"; } mapst = mapst.substring(0, mapst.length() - 1); EmayHttpResponseString res = client.service(request, new EmayHttpResponseStringPraser()); if (res == null) { return new ResultModel(code, result); } if (res.getResultCode().equals(EmayHttpResultCode.SUCCESS)) { if (res.getHttpCode() == 200) { code = res.getResultCode().getCode(); json = res.getResultString(); result = JsonHelper.fromJson(clazz, json); } else { return new ResultModel(code, result); } } else { return new ResultModel(code, result); } } catch (Exception e) { return new ResultModel(code, result); } return new ResultModel(code, result); } }