package com.zhgd.xmgl.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.hikvision.artemis.sdk.Client; import com.hikvision.artemis.sdk.Request; import com.hikvision.artemis.sdk.Response; import com.hikvision.artemis.sdk.constant.Constants; import com.hikvision.artemis.sdk.enums.Method; import com.zhgd.xmgl.modules.basicdata.entity.HikvisionRequestRetry; import com.zhgd.xmgl.modules.basicdata.mapper.HikvisionRequestRetryMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; /** * 海康接口 */ @Slf4j @Component public class HikvisionUtil { private static HikvisionRequestRetryMapper hikvisionRequestRetryMapper; @Autowired public void setHikvisionRequestRetryMapper(HikvisionRequestRetryMapper hikvisionRequestRetryMapper) { HikvisionUtil.hikvisionRequestRetryMapper = hikvisionRequestRetryMapper; } public static String doPost(String host, String path, String body, Map querys, String appKey, String appSecret) { log.info("HikvisionUtil#doPost.url:{}", host + path); log.info("HikvisionUtil#doPost.body:{}", body); String responseStr = null; try { Map headers = new HashMap(); headers.put("Accept", "*/*"); headers.put("Content-Type", "application/json"); Request request = new Request(Method.POST_STRING, host, path, appKey, appSecret, Constants.DEFAULT_TIMEOUT); request.setHeaders(headers); request.setQuerys(querys); request.setStringBody(body); Response response = Client.execute(request); responseStr = getResponseResult(response); log.info("HikvisionUtil#doPost.getResponseResult:{}", responseStr); } catch (Exception var10) { var10.printStackTrace(); HikvisionRequestRetry entity = new HikvisionRequestRetry(); entity.setUrl(host + path); entity.setHost(host); entity.setPath(path); entity.setMethod(2); entity.setParam(JSON.toJSONString(querys)); entity.setBody(body); entity.setLastResult(null); entity.setRequestNum(1); entity.setAppKey(appKey); entity.setAppSecret(appSecret); hikvisionRequestRetryMapper.insert(entity); } return responseStr; } private static String getResponseResult(Response response) { String responseStr = null; int statusCode = response.getStatusCode(); if (!String.valueOf(statusCode).startsWith("2") && !String.valueOf(statusCode).startsWith("3")) { //String msg = response.getErrorMessage(); responseStr = response.getBody(); } else { responseStr = response.getBody(); } return responseStr; } public static JSONObject getJSONObjectData(String rs) { JSONObject rsJo = JSONObject.parseObject(rs); Integer code = rsJo.getInteger("code"); if (code == 0) { return rsJo.getJSONObject("data"); } else { log.error("海康解析结果失败:{}", rs); return null; } } }