2023-02-16 15:28:15 +08:00
|
|
|
|
package com.zhgd.xmgl.util.imou;
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
|
|
import org.apache.commons.httpclient.HttpClient;
|
|
|
|
|
|
import org.apache.commons.httpclient.methods.PostMethod;
|
|
|
|
|
|
import org.apache.commons.httpclient.methods.RequestEntity;
|
|
|
|
|
|
import org.apache.commons.httpclient.methods.StringRequestEntity;
|
|
|
|
|
|
import org.apache.commons.httpclient.params.HttpMethodParams;
|
|
|
|
|
|
import org.apache.commons.httpclient.protocol.Protocol;
|
|
|
|
|
|
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
|
|
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
public class HttpSend {
|
|
|
|
|
|
|
|
|
|
|
|
private static final String url = "https://openapi.lechange.cn/openapi/";
|
|
|
|
|
|
|
|
|
|
|
|
public static JSONObject execute(Map<String, Object> paramsMap, String method, String appId, String appSecret) {
|
|
|
|
|
|
Map<String, Object> map = paramsInit(paramsMap, appId, appSecret);
|
|
|
|
|
|
// 返回json
|
|
|
|
|
|
JSONObject jsonObj = doPost(url + method, map);
|
|
|
|
|
|
log.info("=============================");
|
|
|
|
|
|
log.info("返回结果:" + jsonObj.toJSONString());
|
|
|
|
|
|
return jsonObj;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static JSONObject doPost(String url, Map<String, Object> map) {
|
|
|
|
|
|
String json = JSON.toJSONString(map);
|
|
|
|
|
|
ProtocolSocketFactory factory = new MySecureProtocolSocketFactory();
|
|
|
|
|
|
Protocol.registerProtocol("https", new Protocol("https", factory, 443));
|
|
|
|
|
|
HttpClient client = new HttpClient();
|
|
|
|
|
|
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
|
|
|
|
|
|
PostMethod method = new PostMethod(url);
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
|
|
|
try {
|
|
|
|
|
|
RequestEntity entity = new StringRequestEntity(json, "application/json", "UTF-8");
|
|
|
|
|
|
method.setRequestEntity(entity);
|
|
|
|
|
|
client.executeMethod(method);
|
|
|
|
|
|
|
|
|
|
|
|
InputStream inputStream = method.getResponseBodyAsStream();
|
|
|
|
|
|
String result = IOUtils.toString(inputStream, "UTF-8");
|
|
|
|
|
|
jsonObject = JSONObject.parseObject(result);
|
|
|
|
|
|
} catch (Exception e) {
|
2024-04-14 21:05:01 +08:00
|
|
|
|
log.error("error:", e);
|
2023-02-16 15:28:15 +08:00
|
|
|
|
} finally {
|
|
|
|
|
|
method.releaseConnection();
|
|
|
|
|
|
}
|
|
|
|
|
|
return jsonObject;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected static Map<String, Object> paramsInit(Map<String, Object> paramsMap, String appId, String appSecret) {
|
|
|
|
|
|
long time = System.currentTimeMillis() / 1000;
|
|
|
|
|
|
String nonce = UUID.randomUUID().toString();
|
|
|
|
|
|
String id = UUID.randomUUID().toString();
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder paramString = new StringBuilder();
|
|
|
|
|
|
paramString.append("time:").append(time).append(",");
|
|
|
|
|
|
paramString.append("nonce:").append(nonce).append(",");
|
|
|
|
|
|
paramString.append("appSecret:").append(appSecret);
|
|
|
|
|
|
|
|
|
|
|
|
String sign = "";
|
|
|
|
|
|
// 计算MD5得值
|
|
|
|
|
|
try {
|
|
|
|
|
|
//log.info("传入参数:" + paramString.toString().trim());
|
|
|
|
|
|
sign = DigestUtils.md5Hex(paramString.toString().trim().getBytes("UTF-8"));
|
|
|
|
|
|
} catch (Exception e) {
|
2024-04-14 21:05:01 +08:00
|
|
|
|
log.error("error:", e);
|
2023-02-16 15:28:15 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> systemMap = new HashMap<String, Object>();
|
|
|
|
|
|
systemMap.put("ver", "1.0");
|
|
|
|
|
|
systemMap.put("sign", sign);
|
|
|
|
|
|
systemMap.put("appId", appId);
|
|
|
|
|
|
systemMap.put("nonce", nonce);
|
|
|
|
|
|
systemMap.put("time", time);
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
|
|
|
|
map.put("system", systemMap);
|
|
|
|
|
|
map.put("params", paramsMap);
|
|
|
|
|
|
map.put("id", id);
|
|
|
|
|
|
return map;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|