150 lines
4.2 KiB
Java
150 lines
4.2 KiB
Java
package com.zhgd.xmgl.util;
|
||
|
||
import cn.hutool.core.util.StrUtil;
|
||
import com.alibaba.fastjson.JSONArray;
|
||
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.jeecg.common.execption.OpenAlertException;
|
||
import liquibase.pro.packaged.O;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.springframework.stereotype.Component;
|
||
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
import java.util.Objects;
|
||
|
||
/**
|
||
* 海康接口
|
||
*/
|
||
@Slf4j
|
||
@Component
|
||
public class HikvisionUtil {
|
||
|
||
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
|
||
log.info("调用海康接口.url:{}", host + path);
|
||
log.info("调用海康接口.body:{}", body);
|
||
Map<String, String> 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 * 30);
|
||
request.setHeaders(headers);
|
||
request.setQuerys(querys);
|
||
request.setStringBody(body);
|
||
Response response = Client.execute(request);
|
||
String responseStr = getResponseResult(response);
|
||
log.info("调用海康接口.getResponseResult:{}", responseStr);
|
||
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")) {
|
||
responseStr = response.getBody();
|
||
} else {
|
||
responseStr = response.getBody();
|
||
}
|
||
|
||
return responseStr;
|
||
}
|
||
|
||
/**
|
||
* 成功后,获取data结果
|
||
*
|
||
* @param rs
|
||
* @return
|
||
*/
|
||
public static JSONObject getJSONObjectData(String rs) {
|
||
JSONObject rsJo = JSONObject.parseObject(rs);
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return rsJo.getJSONObject("data");
|
||
} else {
|
||
log.error("海康解析结果失败:{}", rs);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 成功后,获取data结果
|
||
*
|
||
* @param rsJo
|
||
* @return
|
||
*/
|
||
public static JSONObject getJSONObjectData(JSONObject rsJo) {
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return rsJo.getJSONObject("data");
|
||
} else {
|
||
log.error("海康解析结果失败:{}", rsJo.toJSONString());
|
||
throw new OpenAlertException("海康调用失败");
|
||
}
|
||
}
|
||
|
||
public static JSONArray getJSONArrayData(String rs) {
|
||
if (StrUtil.isBlank(rs)) {
|
||
return null;
|
||
}
|
||
JSONObject rsJo = JSONArray.parseObject(rs);
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return rsJo.getJSONArray("data");
|
||
} else {
|
||
log.error("海康解析结果失败:{}", rs);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 是否请求成功
|
||
*
|
||
* @param rs
|
||
* @return
|
||
*/
|
||
public static boolean isSuccess(String rs) {
|
||
JSONObject rsJo = JSONObject.parseObject(rs);
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 是否请求成功
|
||
*
|
||
* @param rsJo
|
||
* @return
|
||
*/
|
||
public static boolean isSuccess(JSONObject rsJo) {
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 是否请求成功
|
||
*
|
||
* @param rsJo
|
||
* @return
|
||
*/
|
||
public static boolean isFail(JSONObject rsJo) {
|
||
String code = rsJo.getString("code");
|
||
if (Objects.equals(code, "0")) {
|
||
return false;
|
||
} else {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
|
||
}
|