自定义注解@EnableHikHttpRequest、@HikHttp、@HikHttpRequest 实现对海康平台接口访问

简介: spring boot自定义注解封装对海康SDK的请求,不用写实现类。有时间的老铁也可改造成适用所有平台
完整代码
  • 对接海康开放平台通常,先引入SDK,然后更具API文档去写需要的实现类接口,接口里面拼接各种参数,然后调用SDK返回太烦了,代码不够简洁,受到Feign启发,将对海康平台接口访问封装成注解的形式
@HikHttp
public interface HikPlatformApiService {

    @HikHttpRequest(value = HikApiConstant.personList, method = HttpMethod.POST)
    public HikVo createNetEaseAcc(Map params);

}
AI 代码解读

image.png

-传统的调用方式

`

/**
 * 调用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<String, String> path = new HashMap<String, String>(2) {
        {
            put("https://", getSecurityApi);
        }
    };
    Map<String, String> head = new HashMap<String, String>(2) {  //get请求的head参数
        {
            put("headpost", "sky-test");
        }
    };
    Map<String, String> query = new HashMap<String, String>(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();
    System.out.println(result);
    String VechicleDataResult = callPostApiGetRegions();
    System.out.println(VechicleDataResult);
}
AI 代码解读

}
`

  • 使用注解后,简洁明了

image.png

  • 使用
    先在启动类上加上@EnableHikHttpRequest("com.coder.gctool.test")注解,和对应要扫描的包
    然后在该包下写接口
    image.png

接口上添加@HikHttp注解,方法上添加 @HikHttpRequest注解就完成了
-测试
image.png

目录
打赏
0
0
0
0
41
分享
相关文章
设备接入--海康摄像头SDK
springboot-对接海康摄像头,兼容window和Linux环境
4616 3
设备接入--海康摄像头SDK
VUE播放RTSP方案,支持H.265!
VUE播放RTSP方案,支持H.265!如果你问一个前端技术人员,近几年最火的前端框架技术是什么,肯定会有人说VUE,确实VUE凭借其简单特性赢得了大家的喜爱,而近期公司有个项目,需要在VUE框架网页上播放RTSP实时视频。
1886 0
如何在VUE中播放海康威视RTSP/RTMP/ISC平台/NVR视频流?延迟低于300毫秒?
近期在做摄像头监控视频在网页中播放的工作,现在大部分摄像头厂商如海康威视、大华、华为等都支持标准的RTSP协议,RTSP协议的优势是实时性高、流畅度度高,同时支持H.265和H.264,清晰度也更高,对于要求比较高的安防、交通等领域很适合。
1169 0
如何在VUE中播放海康威视RTSP/RTMP/ISC平台/NVR视频流?延迟低于300毫秒?
Springboot+Vue3 整合海康获取视频流并展示
Springboot+Vue3 整合海康获取视频流并展示
1941 0
最好的 6 个免费天气 API 接口对比测评
天气 API包含丰富的天气数据,不仅有实时温度、湿度、风速、降水等这些基础数据,还有过去的历史天气数据和未来的天气预测数据,**顶级的天气 API 接口**还会包括天气灾害预警,空气质量指数,日出日落、潮汐及月相相关的天文气象等数据。**天气 API 也并不难获得,本教程将介绍 6 款国内外免费的天气 API,并手把手教你搭建一套属于自己的天气数据看板。**
28904 0
Docker CE 镜像源站
Docker CE 镜像源站
219530 92
优化求解器之手把手教你申请试用与运行MindOpt求解器
MindOpt 是阿里巴巴达摩院决策智能实验室研发出的求解优化问题的专业计算软件。可广泛应用于云计算、零售、金融、制造、交通、能源等领域,是深埋于智能决策场景底层的“终极利器”、“降本增效”的好工具。那么,要如何申请试用与运行MindOpt求解器呢?
优化求解器之手把手教你申请试用与运行MindOpt求解器
|
11月前
|
Mapper that could not be found
Mapper that could not be found
158 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问