|
@@ -0,0 +1,174 @@
|
|
1
|
+package com.community.huiju.common.hk.test;
|
|
2
|
+
|
|
3
|
+import java.util.HashMap;
|
|
4
|
+import java.util.Map;
|
|
5
|
+
|
|
6
|
+import com.alibaba.fastjson.JSON;
|
|
7
|
+import com.hikvision.cms.api.common.util.Digests;
|
|
8
|
+import com.hikvision.cms.api.common.util.HttpClientSSLUtils;
|
|
9
|
+
|
|
10
|
+/**
|
|
11
|
+ * openapi 测试DEMO
|
|
12
|
+ * 客户开发的时候可以参考此代码编写自己的应用
|
|
13
|
+ * 也可以使用demo中的jar包,不过jar包使用务必使用全套,
|
|
14
|
+ * 万不可只取其中一部分,避免依赖破坏
|
|
15
|
+ * @author shengyiling
|
|
16
|
+ *
|
|
17
|
+ */
|
|
18
|
+class OpenapiTest {
|
|
19
|
+
|
|
20
|
+ /**
|
|
21
|
+ * APPKEY需要到部署的平台服务器上生成。
|
|
22
|
+ * <p>
|
|
23
|
+ * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
|
|
24
|
+ * </p>
|
|
25
|
+ * <p>
|
|
26
|
+ * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
|
|
27
|
+ * </p>
|
|
28
|
+ */
|
|
29
|
+ private static final String APPKEY = "b4434b13";
|
|
30
|
+
|
|
31
|
+ /**
|
|
32
|
+ * SECRET需要到部署的平台服务器上生成。
|
|
33
|
+ * <p>
|
|
34
|
+ * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
|
|
35
|
+ * </p>
|
|
36
|
+ * <p>
|
|
37
|
+ * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
|
|
38
|
+ * </p>
|
|
39
|
+ */
|
|
40
|
+ private static final String SECRET = "64a1f32d53784ce2a34bd81822db1b91";
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+ /**
|
|
44
|
+ * http请求地址
|
|
45
|
+ * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
|
|
46
|
+ * <p>请将地址配置正确.</p>
|
|
47
|
+ * <p>默认情况下是127.0.0.1:80 ,如果地址不通请根据实际情况修改IP端口</p>
|
|
48
|
+ */
|
|
49
|
+ private static final String OPENAPI_IP_PORT_HTTP = "http://192.168.0.122";
|
|
50
|
+
|
|
51
|
+ /**
|
|
52
|
+ * https请求地址
|
|
53
|
+ * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
|
|
54
|
+ * <p>请将地址配置正确.</p>
|
|
55
|
+ * <p>默认情况下是127.0.0.1:443 ,如果地址不通请根据实际情况修改IP端口</p>
|
|
56
|
+ */
|
|
57
|
+ private static final String OPENAPI_IP_PORT_HTTPS = "https://127.0.0.1:443";
|
|
58
|
+
|
|
59
|
+ /**
|
|
60
|
+ * 获取默认用户UUID的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
|
|
61
|
+ */
|
|
62
|
+ private static final String ITF_ADDRESS_GET_DEFAULT_USER_UUID = "/openapi/service/base/user/getDefaultUserUuid";
|
|
63
|
+
|
|
64
|
+ /**
|
|
65
|
+ * 分页获取监控点信息的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
|
|
66
|
+ */
|
|
67
|
+ private static final String ITF_ADDRESS_GET_CAMERAS = "/openapi/service/vss/res/getCameras";
|
|
68
|
+
|
|
69
|
+ /**
|
|
70
|
+ * <p>操作用户UUID,即用户UUID,首次使用操作用户UUID可以通过接口 [获取默认用户UUID]来获取</p>
|
|
71
|
+ * <p>也可以通过接口[分页获取用户]来获取</p>
|
|
72
|
+ */
|
|
73
|
+// private static final String OP_USER_UUID = "0be83d40695011e7981e0f190ed6d2e7";
|
|
74
|
+ private static final String OP_USER_UUID = "5b2eb534696b11e89c2e438f92627767";
|
|
75
|
+
|
|
76
|
+ /**
|
|
77
|
+ * 测试方法
|
|
78
|
+ * @param args
|
|
79
|
+ * @throws Exception
|
|
80
|
+ */
|
|
81
|
+ public static void main(String[] args) throws Exception {
|
|
82
|
+
|
|
83
|
+ /***http方式调用***/
|
|
84
|
+ //System.out.println(testGetDefaultUserUUID());
|
|
85
|
+ System.out.println(testGetCameras());
|
|
86
|
+//
|
|
87
|
+// /***https方式调用***/
|
|
88
|
+// System.out.println(testGetDefaultUserUUID_Https());
|
|
89
|
+// System.out.println(testGetCameras_Https());
|
|
90
|
+ }
|
|
91
|
+
|
|
92
|
+ /**
|
|
93
|
+ * HTTP方式
|
|
94
|
+ * 获取默认用户UUID 测试
|
|
95
|
+ * @return
|
|
96
|
+ * @throws Exception
|
|
97
|
+ */
|
|
98
|
+ private static String testGetDefaultUserUUID() throws Exception{
|
|
99
|
+ String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
|
|
100
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
101
|
+ map.put("appkey", APPKEY);//设置APPKEY
|
|
102
|
+ map.put("time", System.currentTimeMillis());//设置时间参数
|
|
103
|
+ String params = JSON.toJSONString(map);
|
|
104
|
+ System.out.println(" ====== testGetDefaultUserUUID 请求参数:【" + params + "】");
|
|
105
|
+ String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, params, SECRET), params);
|
|
106
|
+ System.out.println(" ====== testGetDefaultUserUUID 请求返回结果:【{" + data + "}】");
|
|
107
|
+
|
|
108
|
+ return data;
|
|
109
|
+ }
|
|
110
|
+
|
|
111
|
+ /**
|
|
112
|
+ * HTTP方式
|
|
113
|
+ * 分页获取监控点信息 测试
|
|
114
|
+ * @return
|
|
115
|
+ * @throws Exception
|
|
116
|
+ */
|
|
117
|
+ private static String testGetCameras() throws Exception{
|
|
118
|
+ String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_CAMERAS;
|
|
119
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
120
|
+ map.put("appkey", APPKEY);//设置APPKEY
|
|
121
|
+ map.put("time", System.currentTimeMillis());//设置时间参数
|
|
122
|
+ map.put("pageNo", 1);//设置分页参数
|
|
123
|
+ map.put("pageSize", 5);//设置分页参数
|
|
124
|
+ map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
|
|
125
|
+ String params = JSON.toJSONString(map);
|
|
126
|
+ System.out.println(" ====== getCameras请求参数:【" + params + "】");
|
|
127
|
+ String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
|
|
128
|
+ System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
|
|
129
|
+
|
|
130
|
+ return data;
|
|
131
|
+ }
|
|
132
|
+
|
|
133
|
+ /**
|
|
134
|
+ * HTTPS方式
|
|
135
|
+ * 获取默认用户UUID 测试
|
|
136
|
+ * @return
|
|
137
|
+ * @throws Exception
|
|
138
|
+ */
|
|
139
|
+ private static String testGetDefaultUserUUID_Https() throws Exception{
|
|
140
|
+ String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
|
|
141
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
142
|
+ map.put("appkey", APPKEY);//设置APPKEY
|
|
143
|
+ map.put("time", System.currentTimeMillis());//设置时间参数
|
|
144
|
+ String params = JSON.toJSONString(map);
|
|
145
|
+ System.out.println("============" + params + "============");
|
|
146
|
+ String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
|
|
147
|
+ System.out.println("============" + data + "============");
|
|
148
|
+
|
|
149
|
+ return data;
|
|
150
|
+ }
|
|
151
|
+
|
|
152
|
+ /**
|
|
153
|
+ * HTTPS方式
|
|
154
|
+ * 分页获取监控点信息 测试
|
|
155
|
+ * @return
|
|
156
|
+ * @throws Exception
|
|
157
|
+ */
|
|
158
|
+ private static String testGetCameras_Https() throws Exception{
|
|
159
|
+ String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_CAMERAS;
|
|
160
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
161
|
+ map.put("appkey", APPKEY);//设置APPKEY
|
|
162
|
+ map.put("time", System.currentTimeMillis());//设置时间参数
|
|
163
|
+ map.put("pageNo", 1);//设置分页参数
|
|
164
|
+ map.put("pageSize", 5);//设置分页参数
|
|
165
|
+ map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
|
|
166
|
+ String params = JSON.toJSONString(map);
|
|
167
|
+ System.out.println(" ====== getCameras请求参数:【" + params + "】");
|
|
168
|
+ String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
|
|
169
|
+ System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
|
|
170
|
+
|
|
171
|
+ return data;
|
|
172
|
+ }
|
|
173
|
+
|
|
174
|
+}
|