一.获取合作方数据
1.在【综合安防平台】的【关于】中前往【运行管理中心】
2.输入账户和密码进入【运行管理中心】
3.点击【状态监控】,搜索【能力开放网关】,点击【API管理】,查询可以对接的接口,点击对应的接口名称可以查看请求参数和返回的数据,也可以点击【在线测试】,对接口进行调试
二、集成到Java程序
1.需要下载 海康威视的jar包【artemis-http-client-1.1.8.jar】
jar包 在 我的资源中下载 附链接
https://download.csdn.net/download/qq_41840735/88279991
2.用mvn命令安装到自己项目中,命令如下
【mvn install:install-file -Dfile=E:\artemis-http-client-1.1.8.jar -DgroupId=com.hikvision.ga -DartifactId=artemis-http-client -Dversion=1.1.8 -Dpackaging=jar】
在idea中的Terminal中执行,需要在本项目下
3.新建类,然后把方法复制进去就可以了,这儿是获取人员信息的方法
import com.alibaba.fastjson2.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import java.util.HashMap;
import java.util.Map;
public class GetCameraPreviewURL {
public static String GetCameraPreviewURL() throws Exception {
ArtemisConfig artemisConfig = new ArtemisConfig();
/**
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
*/
artemisConfig.setHost("IP:port") ; // artemis网关服务器ip端口
artemisConfig.setAppKey("合作方的AK"); // 秘钥appkey
artemisConfig.setAppSecret("合作方的SK"); // 秘钥appSecret
/**
* STEP2:设置OpenAPI接口的上下文
*/
final String ARTEMIS_PATH = "/artemis";
/**
* STEP3:设置接口的URI地址
*/
final String previewURLsApi = ARTEMIS_PATH +
"/api/resource/v2/person/personList";
Map<String, String> path = new HashMap<String, String>(2) {
{
put("https://" , previewURLsApi);//根据现场环境部署确认是http还是https
}
};
/**
* STEP4:设置参数提交方式
*/
String contentType = "application/json";
/**
* STEP5:组装请求参数
* pageSize:最大量是1000
*/
com.alibaba.fastjson2.JSONObject jsonBody = new JSONObject();
jsonBody.put("pageSize" ,1000);
jsonBody.put("pageNo" , 5);
String body = jsonBody.toJSONString();
/**
* STEP6:调用接口
*/
String result = ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path, body, null, null,
contentType, null);// post请求application/json类型参数
return result;
}
}
4.调用 3中的方法,将代码中的result中的数据进行解析,然后赋值给你需要的字段,通过你的接口插入到数据库中(这儿建议建一个中转库表,可以查看数据是否缺少和排错)
String s = GetCameraPreviewURL.GetCameraPreviewURL();
JSONObject json = JSONObject.parseObject(s);
Map<String, Object> mapData = (Map<String, Object>) json;
List<CPerson> personList = new ArrayList<CPerson>(200);
if (mapData.get("code").equals("0") && mapData.get("msg").equals("success")) {
Map<String, List<Map>> mapList = (Map) mapData.get("data");
//真正的数据
List<Map> list = mapList.get("list");
5.对接海康威视的时候注意版本的字段含义,每个版本可能会有变化
我现在使用的是 1.4 和1.7