From eca16b98d19c5c3e6a2cc26d32dfa507861d2962 Mon Sep 17 00:00:00 2001 From: TS-QD1 Date: Thu, 24 Jul 2025 09:47:56 +0800 Subject: [PATCH] 1 --- libs/artemis-http-client-1.1.11.RELEASE.jar | Bin 0 -> 41302 bytes pom.xml | 8 + .../java/com/cm/population/utils/Tools.java | 58 +++++ src/test/java/HKTest.java | 210 ++++++++++++++++++ 4 files changed, 276 insertions(+) create mode 100644 libs/artemis-http-client-1.1.11.RELEASE.jar create mode 100644 src/main/java/com/cm/population/utils/Tools.java create mode 100644 src/test/java/HKTest.java diff --git a/libs/artemis-http-client-1.1.11.RELEASE.jar b/libs/artemis-http-client-1.1.11.RELEASE.jar new file mode 100644 index 0000000000000000000000000000000000000000..880448ed841235797cb724d31a3679fabfca90ec GIT binary patch literal 41302 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%0AfD{f*{wV@I`mM0;x=DW%6C7Iv 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 3b3a5b4..6ee6380 100644 --- a/pom.xml +++ b/pom.xml @@ -106,6 +106,14 @@ log4j 1.2.14 + + + hk + artemis-http-client + 1.1.11.RELEASE + system + ${pom.basedir}/libs/artemis-http-client-1.1.11.RELEASE.jar + diff --git a/src/main/java/com/cm/population/utils/Tools.java b/src/main/java/com/cm/population/utils/Tools.java new file mode 100644 index 0000000..ff42c43 --- /dev/null +++ b/src/main/java/com/cm/population/utils/Tools.java @@ -0,0 +1,58 @@ +package com.cm.population.utils; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +/** + * 工具类 + * + * @author + * @create 2019-01-11 17:06 + **/ +public class Tools { + + /** + * 将图片写到 硬盘指定目录下 + * + * @param in + * @param dirPath + * @param filePath + */ + public static void savePicToDisk(InputStream in, String dirPath, + String filePath) { + + try { + File dir = new File(dirPath); + if (dir == null || !dir.exists()) { + dir.mkdirs(); + } + + //文件真实路径 + String realPath = dirPath.concat(filePath); + File file = new File(realPath); + if (file == null || !file.exists()) { + file.createNewFile(); + } + + FileOutputStream fos = new FileOutputStream(file); + byte[] buf = new byte[1024]; + int len = 0; + while ((len = in.read(buf)) != -1) { + fos.write(buf, 0, len); + } + fos.flush(); + fos.close(); + + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/test/java/HKTest.java b/src/test/java/HKTest.java new file mode 100644 index 0000000..8f1febc --- /dev/null +++ b/src/test/java/HKTest.java @@ -0,0 +1,210 @@ +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.cm.population.utils.Tools; +import com.hikvision.artemis.sdk.ArtemisHttpUtil; +import com.hikvision.artemis.sdk.config.ArtemisConfig; +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; + +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import static com.hikvision.artemis.sdk.util.HttpUtil.wrapClient; + +public class HKTest { + + /** + * 请根据技术支持提供的实际的平台IP/端口和API网关中的合作方信息更换static静态块中的三个参数. + * [1 host] + * host格式为IP:Port,如10.0.0.1:443 + * 当使用https协议调用接口时,IP是平台(nginx)IP,Port是https协议的端口; + * 当使用http协议调用接口时,IP是artemis服务的IP,Port是artemis服务的端口(默认9016)。 + * [2 appKey和appSecret] + * 请按照技术支持提供的合作方Key和合作方Secret修改 + * appKey:合作方Key + * appSecret:合作方Secret + * 调用前看清接口传入的是什么,是传入json就用doPostStringArtemis方法,是表单提交就用doPostFromArtemis方法 + * + */ + /** + * API网关的后端服务上下文为:/artemis + */ + private static final String ARTEMIS_PATH = "/artemis"; + + /** + * 调用POST请求类型接口,这里以获取组织列表为例 + * 接口实际url:https://ip:port/artemis/api/resource/v1/org/orgList + * @return + */ + public static String callPostApiGetOrgList() throws Exception { + /** + * https://ip:port/artemis/api/resource/v1/org/orgList + * 通过查阅AI Cloud开放平台文档或网关门户的文档可以看到获取组织列表的接口定义,该接口为POST请求的Rest接口, 入参为JSON字符串,接口协议为https。 + * ArtemisHttpUtil工具类提供了doPostStringArtemis调用POST请求的方法,入参可传JSON字符串, 请阅读开发指南了解方法入参,没有的参数可传null + */ + ArtemisConfig config = new ArtemisConfig(); + config.setHost("1.30.233.210:56443"); // 代理API网关nginx服务器ip端口 + config.setAppKey("27404117"); // 秘钥appkey + config.setAppSecret("VxXrlPboTJI7ygpf4WBL");// 秘钥appSecret +// final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/org/orgList"; + + // {"code":"0","msg":"SUCCESS","data":{"total":1,"list":[{"name":"管委会中心端","indexCode":"root00000000","treeCode":"0","parentIndexCode":"-1","externalIndexCode":"1502"}]}} + final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/regions/root"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("pageNo", "1"); + paramMap.put("pageSize", "2"); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", getCamsApi); + } + }; + return ArtemisHttpUtil.doPostStringArtemis(config,path, body, null, null, "application/json"); + } + + /** + * 摄像头资源 + * @return + * @throws Exception + */ + public static String callPostApiGetCameras() throws Exception { + ArtemisConfig config = new ArtemisConfig(); + config.setHost("1.30.233.210:56443"); // 代理API网关nginx服务器ip端口 + config.setAppKey("27404117"); // 秘钥appkey + config.setAppSecret("VxXrlPboTJI7ygpf4WBL");// 秘钥appSecret + final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/cameras"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("pageNo", "1"); + paramMap.put("pageSize", "2"); +// paramMap.put("regionIndexCodes", JSON.toJSONString(Arrays.asList("root00000000"))); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", getCamsApi); + } + }; + return ArtemisHttpUtil.doPostStringArtemis(config,path, body, null, null, "application/json"); + } + + public static String callPostApiGetPreview() throws Exception { + ArtemisConfig config = new ArtemisConfig(); + config.setHost("1.30.233.210:56443"); // 代理API网关nginx服务器ip端口 + config.setAppKey("27404117"); // 秘钥appkey + config.setAppSecret("VxXrlPboTJI7ygpf4WBL");// 秘钥appSecret + final String getCamsApi = ARTEMIS_PATH + "/api/video/v1/cameras/previewURLs"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("cameraIndexCode", "8d03580e6ffc40678000b6b1f4fe1918"); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", getCamsApi); + } + }; + return ArtemisHttpUtil.doPostStringArtemis(config,path, body, null, null, "application/json"); + } + + + + /** + * 调用POST请求类型接口,这里以分页获取区域列表为例 + * 接口实际url:https://ip:port/artemis/api/api/resource/v1/regions + * @return + */ + public static String callPostApiGetRegions() throws Exception { + /** + * https://ip:port/artemis/api/resource/v1/regions + * 过查阅AI Cloud开放平台文档或网关门户的文档可以看到分页获取区域列表的定义,这是一个POST请求的Rest接口, 入参为JSON字符串,接口协议为https。 + * ArtemisHttpUtil工具类提供了doPostStringArtemis调用POST请求的方法,入参可传JSON字符串, 请阅读开发指南了解方法入参,没有的参数可传null + */ + ArtemisConfig config = new ArtemisConfig(); + config.setHost("127.0.0.1"); // 代理API网关nginx服务器ip端口 + config.setAppKey("20469790"); // 秘钥appkey + config.setAppSecret("lofnD6DbnBllHmk5YOyx");// 秘钥appSecret + final String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/regions"; + Map paramMap = new HashMap();// post请求Form表单参数 + paramMap.put("pageNo", "1"); + paramMap.put("pageSize", "2"); + paramMap.put("treeCode", "0"); + String body = JSON.toJSON(paramMap).toString(); + Map path = new HashMap(2) { + { + put("https://", getCamsApi); + } + }; + return ArtemisHttpUtil.doPostStringArtemis(config,path, body, null, null, "application/json"); + } + + /** + * 调用POST接口,返回图片 + * 接口实际url:https://ip:port/artemis/api/visitor/v1/record/pictures + * @return + */ + public static String callPostImgs() throws Exception { + ArtemisConfig config = new ArtemisConfig(); + config.setHost("127.0.0.1"); // 代理API网关nginx服务器ip端口 + config.setAppKey("20469790"); // 秘钥appkey + config.setAppSecret("lofnD6DbnBllHmk5YOyx");// 秘钥appSecret + final String getSecurityApi = "/artemis" + "/api/visitor/v1/record/pictures"; // 接口路径 + Map path = new HashMap(2) { + { + put("https://", getSecurityApi); + } + }; + Map head = new HashMap(2) { //get请求的head参数 + { + put("headpost", "sky-test"); + } + }; + Map query = new HashMap(2) { //get请求的head参数 + { + put("domainId", "0"); + } + }; + JSONObject jsonBody = new JSONObject(); + jsonBody.put("svrIndexCode", "9ff58bc2-65a5-464b-b28c-daea67ba9569"); + jsonBody.put("picUri", "/pic?9dda12i40-e*5b84626c4105m5ep=t=i3p*i=d1s*i=d3b*i1d3b*855925cea-96008b--2718943z855s=5i76="); + String body = jsonBody.toJSONString(); + //参数根据接口实际情况设置 + HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, query, null,"application/json",head); + try { + HttpResponse resp = result; + if (302==resp.getStatusLine().getStatusCode()) { + /* + 获取图片数据保存到本地 + 注:1.对于有时效的图片,必须尽快保存到本地 + 2.若无时效,则可以直接保存location,后续自行访问获取 + */ + Header header= resp.getFirstHeader("location"); + String newUrl = header.getValue(); + HttpGet httpget = new HttpGet(newUrl); + HttpClient httpClient = wrapClient(httpget.getURI().getScheme()+"://"+httpget.getURI().getHost()); + HttpResponse execute = httpClient.execute(httpget); + HttpEntity entity = execute.getEntity(); + InputStream in = entity.getContent(); + Tools.savePicToDisk(in, "d:/", "test311.jpg"); + }else{ + System.out.println("下载出错"); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return getSecurityApi; + } + + public static void main(String[] args) throws Exception { +// String result = callPostApiGetOrgList(); +// String result = callPostApiGetCameras(); + String result = callPostApiGetPreview(); + JSONObject jsonObject = JSONObject.parseObject(result); + System.out.println(jsonObject); +// String VechicleDataResult = callPostApiGetRegions(); +// System.out.println(VechicleDataResult); + } + +}