Onvif编译及开发(带wsse鉴权和digest鉴权)

1.gsoap工具下载

使用gsoap版本2.8.126,

有道云笔记

gsoap_2.8.126.zip

2.创建OnvifFramework_126文件夹

将\gsoap_2.8.126\gsoap-2.8\gsoap下的plugin,import,custom复制到onvifFrameworkC

将wsdl2h.exe和soapcpp2.exe复制到F:\OnvifFramework_126目录下

将F:\gsoap_2.8.126\gsoap-2.8\gsoap下的stdsoap2.cpp,stdsoap2.h,dom.cpp复制到OnvifFramework_126

将F:\gsoap_2.8.112\gsoap-2.8\gsoap下的typemap.dat复制到OnvifFramework_126

3.使用命令生成onvif.h文件

wsdl2h -x -t typemap.dat -o onvif.h http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl http://www.onvif.org/onvif/ver10/search.wsdl http://www.onvif.org/onvif/ver10/display.wsdl http://www.onvif.org/onvif/ver10/deviceio.wsdl http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl http://www.onvif.org/onvif/ver10/receiver.wsdl http://www.onvif.org/onvif/ver10/recording.wsdl

通过以上方式可以在线下载,无需使用离线文件。

5.onvif.h中添加

#import "wsse.h"

通过添加wsse.h,允许使用ssl。

6.修改import/wsa5.h

防止SOAP_ENV__Fault重复错误,修改\import\wsa5.h。把SOAP_ENV__Fault的名字改了

7.使用命令生成文件

soapcpp2 -2 -x -C onvif.h -L -Iimport

8.提取文件至onvif_frame

提取相应文件,并修改后缀c为cpp。

9.相关报错

9.1 LONG64

取消掉 xsd__duration = #import "custom/duration.h" | xsd__duration 前面的注释

9.2.无法解析的外部符号 _namespaces

在stdsoap2.cpp中添加#include "wsdd.nsmap"

9.3.添加预编译头

_CRT_SECURE_NO_WARNINGS

WITH_DOM

WITH_OPENSSL

DEBUG:生成TEST.txt SEND.txt RECV.txt用于soap调试

WITH_NONAMESPACE :针对报namespace无法解析

10.生成文件和ptz控制demo

有道云笔记

OnvifFramework_126.rar

Onvif_demo2.rar

11.Onvif鉴权方式改Digest方式。

在gsoap中已经考虑到使用http Digest方式授权。见httpda.c和httpda.h。

仿照e'xample写相关代码即可。

如果一次鉴权多次使用,则参考http_da_restore,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值