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 *

* 无参数,默认获取所有区域设备列表 */ public HikRespData 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 path = new HashMap(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 data = JSONObject.parseObject(result, HikRespData.class); return data; } }