package com.ld.igds.protocol.hikmedia;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
import com.ld.igds.protocol.hikmedia.data.ApiHikParam;
|
import com.ld.igds.protocol.hikmedia.data.CameraMainDto;
|
import com.ld.igds.protocol.hikmedia.data.HikRespData;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 海康视频流媒体API调用管理-设备查询类接口
|
*/
|
public class ApiCameraSearch {
|
|
private final static ApiCameraSearch instance = new ApiCameraSearch();
|
|
private ApiCameraSearch() {
|
}
|
|
public static ApiCameraSearch getInstance() {
|
return instance;
|
}
|
|
|
/**
|
* 查询编码设备列表v2
|
* <p>
|
* 无参数,默认获取所有区域设备列表
|
*/
|
public HikRespData<CameraMainDto> apiSearchDevice(ApiHikParam param) {
|
|
/**
|
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
|
*/
|
ArtemisConfig.host = param.getWanIp() + ":" + param.getPort(); // 平台的ip端口
|
ArtemisConfig.appKey = param.getAppKey(); // 密钥appkey
|
ArtemisConfig.appSecret = param.getAppSecret();// 密钥appSecret
|
|
/**
|
* STEP2:设置OpenAPI接口的上下文
|
*/
|
final String ARTEMIS_PATH = param.getArtemisPath();
|
|
|
/**
|
* STEP3:设置接口的URI地址
|
*/
|
final String previewURLsApi = ARTEMIS_PATH + "/api/resource/v2/camera/search";
|
|
|
Map<String, String> path = new HashMap<String, String>(2) {
|
{
|
put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
|
}
|
};
|
|
/**
|
* STEP4:设置参数提交方式
|
*/
|
String contentType = "application/json";
|
|
|
/**
|
* STEP5:组装请求参数
|
*/
|
JSONObject jsonBody = new JSONObject();
|
jsonBody.put("pageNo", param.getPageNo());
|
jsonBody.put("pageSize", param.getPageSize());
|
if(null != param.getRegionIndexCodes() && param.getRegionIndexCodes().length > 0){
|
jsonBody.put("regionIndexCodes", param.getRegionIndexCodes());
|
}
|
String body = jsonBody.toJSONString();
|
|
/**
|
* STEP6:调用接口
|
*/
|
String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
|
|
|
HikRespData<CameraMainDto> data = JSONObject.parseObject(result, HikRespData.class);
|
|
return data;
|
}
|
}
|