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 <T> ResultModel<T> request(String appId, String secretKey, String url, Object object, Class<T> clazz) { 
 | 
        String code = "SYSTEM";// 默认系统异常 
 | 
        T result = null; 
 | 
        EmayHttpRequestBytes request = null; 
 | 
        try { 
 | 
            Map<String, String> headers = new HashMap<String, String>(); 
 | 
            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<T>(code, result); 
 | 
        } 
 | 
        try { 
 | 
            EmayHttpClient client = new EmayHttpClient(); 
 | 
            EmayHttpResponseBytes res = client.service(request, new EmayHttpResponseBytesPraser()); 
 | 
            if (res == null) { 
 | 
                return new ResultModel<T>(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<T>(code, result); 
 | 
                } 
 | 
            } else { 
 | 
                return new ResultModel<T>(code, result); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
            return new ResultModel<T>(code, result); 
 | 
        } 
 | 
        return new ResultModel<T>(code, result); 
 | 
    } 
 | 
  
 | 
    public static <T> ResultModel<T> request(Map<String, String> params, String url, String encode, Class<T> 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<T>(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<T>(code, result); 
 | 
                } 
 | 
            } else { 
 | 
                return new ResultModel<T>(code, result); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            return new ResultModel<T>(code, result); 
 | 
        } 
 | 
        return new ResultModel<T>(code, result); 
 | 
    } 
 | 
  
 | 
} 
 |