gsoap

gSoap - parse custom http header from request

穿精又带淫゛_ 提交于 2021-02-11 13:33:01
问题 I'm trying to find some information on how to parse out custom http headers received in a request by a gSoap server application. I've spent several hours trying to find any documentation on this but so far I haven't been successful. I see plenty of documentation on how to set custom http headers for both the client and server (such as via the http_extra_header property), but not on how to read them from a request that was received. It seems like gSoap supports parsing out existing

EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(一)使用Onvif协议进行设备发现以及指定设备信息探测

自闭症网瘾萝莉.ら 提交于 2021-01-30 10:13:24
背景分析 众所周知,EasyNVR不拘泥、不受限于摄像机的品牌厂商及其配套平台,只要是网络监控摄像机IPC、硬盘录像机NVR、且设备支持标准的RTSP/Onvif协议,都可以接入实时视频流进入EasyNVR系统进行直播、录像、检索与回放服务。关于EasyNVR,可以移步 基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控 具体了解。同时EasyNVR支持使用onvif协议进行设备发现、云台控制、onvif地址获取等功能。 本篇博文着重对EasyNVR如何进行设备发现进行说明 1.准备阶段 首先,我们要了解Onvif协议( https://www.onvif.org/ ),关于如何使用gsoap进行onvif客户端的开发前文已经探讨,gsoap的onvif框架生成请自行google。Onvif协议的功能有很多,本文只探讨安防监控直播常用的几种功能。 2.发现原理 Onvif协议要求实现Onvif协议服务的设备支持设备发现以及设备探测,也就是discovery和probe。discovery,客户端向网段内的 组播地址为239.255.255.250,端口为3702 发送广播消息,等待网内Onvif协议设备响应。响应消息的设备会返回自己的IP、UUID、EP Address、Type等,最重要的会返回设备的Device Service Address,格式如:

In gSoap, what does the “host” argument to soap_bind mean?

二次信任 提交于 2021-01-28 18:25:15
问题 The gSoap API function soap_bind has an argument called host . The documentation is unclear about what the argument is for. Is it: The hostname/IP of a local network interface on which I want to listen The hostname/IP of the only remote host I will allow to connect Something else? 回答1: Option 1: the hostname or IP address of the local interface you'll be listening on. It corresponds to the traditional sockets bind (then listen, accept) sequence. 来源: https://stackoverflow.com/questions/1941019

Linux下onvif客户端获取ipc摄像头 GetStreamUri:rtsp地址(h264、h265)

非 Y 不嫁゛ 提交于 2020-04-24 13:43:35
GetStreamUri:rtsp地址 鉴权: 但是在使用这个接口之前是需要鉴权的。ONVIF协议规定,部分接口需要鉴权,部分接口不需要鉴权,在调用需要鉴权的接口时不使用鉴权,会导致接口调用失败。实现鉴权的方式之一可以调用gSOAP源码中的 soap_wsse_add_UsernameTokenDigest()函数。要安装依赖库OpenSSL 实现代码: #include <stdio.h> #include <stdlib.h> #include < string .h> #include <assert.h> #include " soapH.h " #include " stdsoap2.h " #include " soapStub.h " #include " wsseapi.h " #include " wsdd.nsmap " // 命名空间 static struct soap* ONVIF_Initsoap( struct SOAP_ENV__Header *header, const char *was_To, const char *was_Action, int timeout) { struct soap *soap = NULL; // soap环境变量 unsigned char macaddr[ 6 ]; char _HwId[ 1024 ];

使用Gsoap创建webservice(c++)

半腔热情 提交于 2020-04-24 13:40:43
使用 Gsoap 创建 WebService (c++) 1. 下载编译Gsoap gSOAP工具包是用于SOAP和REST XML Web服务以及通用C / C ++ XML数据绑定的C和C ++软件开发工具包。 该工具包分析WSDL和XML模式(单独或作为组合集),并将XML模式类型和SOAP / REST XML消息传递协议映射为易于使用且高效的C和C ++代码。 它还支持通过自动生成XML序列化代码和WSDL规范将(传统)C和C ++应用程序作为XML Web服务公开。 下载Gsoap2.8:Gsoap下载地址: https://sourceforge.net/projects/gsoap2/files 解压,编译,安装后, 解压目录/gsoap/目录下,找到stdsoap2.c,stdsoap2.cpp,stdsoap2.h三个文件,后续需要引入。 2. 编写webservice所需头文件 2.1 编写imageRg.h文件,实例如下:(标注区域都需要根据实际情况替换) //gsoap ns service name: imageRg //gsoap ns service namespace: http://localhost/imageRg.wsdl //gsoap ns service location: http://localhost //gsoap ns

Linux下onvif客户端获取h265 IPC摄像头的RTSP地址

匆匆过客 提交于 2020-04-24 13:40:25
1、 设备搜索,去获取 webserver 的地址 ,目的是在获取能力提供服务地址,demo: https://www.cnblogs.com/croxd/p/10683429.html 2、 GetCapabilities获取能力,目的是在GetProfiles时提供媒体地址,demo: https://www.cnblogs.com/croxd/p/10683503.html , 如果GetCapabilities获取能力失败,soap error 4 或者 52的话,可以参考: https://www.cnblogs.com/croxd/p/10684712.html char sercer_addr[] = " http://172.168.0.211/onvif/device_service " ; // 设备搜索获取到的地址 struct SOAP_ENV__Header header; struct soap* soap = ONVIF_Initsoap(&header, NULL, NULL, 5 ); struct _tds__GetCapabilities * req; struct _tds__GetCapabilitiesResponse * Response; req ->__sizeCategory = 1 ; req ->Category = (

Linux下onvif客户端关于ipc摄像头的搜索

有些话、适合烂在心里 提交于 2020-04-24 09:24:41
设备搜索 :要访问一个IPC摄像头,或者说要调用IPC摄像头提供的WEB服务接口,就要先知道其IP地址,这就是设备发现的过程,或者叫设备搜索的过程。IPC摄像头用的是239.255.255.250(端口3702),所以设备搜索的原理是,只要在设备上服务器监听239.255.255.250的3702端口。ONVIF规范并没有自己定义服务设备发现框架,而是复用了已经很成熟的WS-Discovery标准,根据.wsdl的文件,用gsoap产生框架代码,调用其产生的函数接口去实现设备的搜索。 1 、gsoap框架代码:https://blog.csdn.net/weixin_42432281/article/details/84818575 2 、上一部如果完成,就直接略过,将安装的gsoap-2.8\gsoap目录下的两个文件:stdsoap2.c、stdsoap2.h拷贝到你工作目录下 3 、注释stdsoap2.c如下代码:不注释的话会在编译运行的时候产生log日志,最后会发现磁盘已满的现象。 /* #ifdef SOAP_DEBUG #ifdef TANDEM_NONSTOP soap_set_test_logfile(soap, "TESTLOG"); soap_set_sent_logfile(soap, "SENTLOG"); soap_set_recv_logfile

Linux下onvi支持h265环境的的搭建:gsoap的安装及生产.c .h文件

浪尽此生 提交于 2020-04-24 09:24:18
1. 下载gsoap : http://www.genivia.com/products.html#notice ,既Open Source gSOAP版本,并解压进入目录安装,configure后面的选项可以根据自己的需求添加,--prefix后面填写的gsoa安装所在的路径,我安装的是当前的路径,如果prefix出现安装错误,则需要把路径改成绝对路径。 ./configure --enable-ipv6 --enable-debug --prefix=./ make make install 2. gsoap虽然安装完成,但是你还要检查你的linux下是否也安装了以下内容,没有的话要安装一下,gsoap才能正常使用: .Bison或Yacc 安装:" https://www.gnu.org/software/bison/ " Flex的安装:" https://github.com/westes/flex/releases " OpenSSL 的安装:" https://www.openssl.org/source/ " 可选的Zlib支持:" http://www.zlib.net/ " 3. 把gsoap-2.8/gsoap/typemap.dat也拷贝到一个新建工作目录下,并修改该文件的内容,在命名空间已经存在的trt下,新增支持h265的代码行 tr2 = http:/

gSoap实现ONVIF的设备发现(windows下)

妖精的绣舞 提交于 2020-04-24 06:54:41
一、要准备的文件: 1.ONVIF相关的WSDL文件,对于设备发现,只需要用到 RemoteDiscovery.wsdl一个即可, 2.gSoap的压缩包,找到/gsoap/bin/win32文件夹中的soapcpp2.exe以及wsdl2h.exe,以及在/gSoap目录下的typemap.dat文件,将这些文件放到一个文件夹下。 二、对typemap.bat进行修改, tds = "http://www.onvif.org/ver10/device/wsdl" tev = "http://www.onvif.org/ver10/events/wsdl" tls = "http://www.onvif.org/ver10/display/wsdl" tmd = "http://www.onvif.org/ver10/deviceIO/wsdl" timg = "http://www.onvif.org/ver20/imaging/wsdl" trt = "http://www.onvif.org/ver10/media/wsdl" tptz = "http://www.onvif.org/ver20/ptz/wsdl" trv = "http://www.onvif.org/ver10/receiver/wsdl" trc = "http://www.onvif.org

【翻译】gSOAP 2.8.5 用户手册(待续)

爷,独闯天下 提交于 2020-04-23 14:49:15
gSOAP 2.8.5 用户手册 1 简介 gSOAP工具基于编译器技术为C/C++提供自动的SOAP和XML数据绑定。(这句话不好理解,且向下看)。该工具使用自动生成代码以及先进的映射方法,简化了基于C/C++的SOAP/XML Web service和XML应用程序的开发。(有点靠谱了,可以理解成该工具可以帮助程序员完成协议底层的代码)。大多数Web services工具采用以WSDL/SOAP为中心的观点,并且提供一组API,使用这些API必须使用相应的类库来处理特定XML数据结构。这强迫用户去适应该程序逻辑才能使用这些类库,因为用户在使用该特定厂商的API时必须编写代码去填充XML和抽取XML数据。这往往导致一个脆弱的解决方案,几乎没有数据一致性、类型安全和XML验证的保证。(好了,损完别人了,下面开始自夸)。与其他工具不同的是,gSOAP使用编译器技术为用户隐藏了WSDL、SOAP、特定XML的实现细节,同时自动提供XML有效性验证、内存管理和类型安全序列化,从而提供透明的解决方案。gSOAP工具可将原有的数据类型和用户自定义的数据类型映射成等价的XML数据类型,反之亦然。因此,通过一个简单的API得到了完美的SOAP互操作性,从而可使用用户从WSDL/SOAP/XML的细节中解脱出来,集中精力处理应用程序逻辑。(主要还是讲了gSOAP可以给用户,即程序员,提供协议透明