最近对接几家 不同的nvr厂商,有华为 金山立 大华 海康等等。大多数都是直接提供的sdk 

直接把so库集成在程序里面即可 

唯独华为提供的是HTTP接口 也就是所谓的RESTful方式 

但是不是普通的http方式 而是  https方式 

之前所有的关于Web服务的交互都是基于http的 而不是https

也没啥https的经验,然后就网上搜了下需要用到openssl 直接把openssl下载下来 编译成so库 

然后自己直接写了个socket 设置对应的头  返现Get是可以的

但是Post不行 ,

华为的所有所有的HTTPS接口除了登录的之外 其他的都需要附带一个sessionid  

而这个sessionid是根据登录时候从服务器返回过来的一个cookie我们需要自己保存这个cookie然后之后的每次请求都把这个cookie带上

然后问了下同事 github上 所有个http-lib的支持 https

就直接下下来了 直接一个h文件   直接引入这个头文件就可以 

后来 遇到问题为了便于调试 给拆分成一个头文件 一个cpp文件了 

由于我们是使用https的方式  需要依赖于openssl的库  

makefile需要把这两个库文件加进来

同时需要 打开这个宏 CPPHTTPLIB_OPENSSL_SUPPORT

之后 引入头文件 https就可以正常用了

 

 

有的接口需要等待的时间比较长  如果不设置超时时间的话 

会导致post返回的 对象为空

登录的部分:

设置cookie 然后keepalive

 

获取相机设备

设置osd

退出登录:

GitHub 加速计划 / cp / cpp-httplib
12.46 K
2.22 K
下载
A C++ header-only HTTP/HTTPS server and client library
最近提交(Master分支:1 个月前 )
ed0719f2 - 1 个月前
6a848b1a TLS 1. is deprecated: https://www.ietf.org/rfc/rfc8996.html 1 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐