gsoap及onvif開發客戶端框架的生成(一)

2021-08-01 14:59:50 字數 1677 閱讀 7354

2.離線生成onvif.h檔案

需要執行命令:

wsdl2h -o onvif.h -c -s -t ./typemap.dat devicemgmt.wsdl media.wsdl event.wsdl display.wsdl deviceio.wsdl imaging.wsdl ptz.wsdl receiver.wsdl recording.wsdl search.wsdl remotediscovery.wsdl replay.wsdl analytics.wsdl analyticsdevice.wsdl actionengine.wsdl accesscontrol.wsdl doorcontrol.wsdl
需要那麼多的*.wsdl

wsdl2h -o onvif.h -c -s -t ./typemap.dat devicemgmt.wsdl media.wsdl event.wsdl display.wsdl deviceio.wsdl imaging.wsdl ptz.wsdl receiver.wsdl recording.wsdl search.wsdl remotediscovery.wsdl replay.wsdl analytics.wsdl analyticsdevice.wsdl actionengine.wsdl accesscontrol.wsdl doorcontrol.wsdl

提示一下資訊說明生成成功了:

注意:生成的時候會提示找不到onvif.xsd、types.xsd路徑,只要修改相應的wsdl路徑即可

3.生成**框架:

首先新增對openssl的支援

開啟onvif.h,新增#import "wsse.h"

生成命令:

注意:如果提示

wsa5.h(288): **error**: remote method name clash: struct/class 'soap_env__fault' already declared at line 274

開啟檔案gsoap_2.8.16/gsoap-2.8/gsoap/import/ wsa5.h

將277行int soap_env__fault修改為int soap_env__fault_alex

通過以上步驟,onvif客戶端框架基本上有了。

最後只需要保留以下檔案即可:

onvif.h、soapc.c、soapclient.c、soaph.h、soapstub.h、stdsoap2.c、stdsoap2.h、wsdd.h(wsdd.nsmap修改的)

其中是stdsoap2.c、

stdsoap2.h是gsoap-2.8拷貝過來的。

ONVIF客戶端開發

在使用 gsoap 框架生成 之後,得到檔案 soapc.c soapclient.c stdsoap2.c stdsoap2.h duration.c wsdd.h我們利用現有的soapclient,呼叫api構建onvif請求 包括xml,http client 開發前需要了解一下onvif官網...

使用gsoap編譯生成onvif原始碼C C 檔案

需要先安裝openssl sudo apt get install openssl sudo apt get install libssl dev.config make sudo make install安裝成功後可以使用wsdl2h 和soapcpp2命令 wsdl2h 命令用於生成標頭檔案 s...

基於c 開發gsoap客戶端 client

如何開發gsoap client 工作需要用c 做乙個webservice客戶端,開發環境為 vs 2005 學習了一下gsoap。解壓 在編寫客戶端之前我們必須提供webservice的伺服器端 筆者的webservice伺服器使用axis來生成wsdl檔案 提供的方法如下 public clas...