如何開發gsoap client
工作需要用c++做乙個webservice客戶端,開發環境為:vs 2005 學習了一下gsoap。
解壓:
在編寫客戶端之前我們必須提供webservice的伺服器端:
筆者的webservice伺服器使用axis來生成wsdl檔案
提供的方法如下:
public class hello
}wsdl檔案如下圖:
伺服器端接介紹到這 下面我們開始我們的主題 編寫客戶端:
1 編寫客戶端我們需要用到前面介紹的gsoap工具 進入解壓好的gsoap\bin\win32 該目錄下有我們需要使用soapcpp2.exe和wsdl2h.exe。
wsdl2h.exe 的使用:
用法:wsdl2h -o 頭檔名 wsdl檔名或urlwsdl2h常用選項soapcpp2.exe 的使用:
常用選項
2生成客戶端存根:
wsdl2h-ohello.h http://localhost/webservice/hello.jws?wsdl 從wsdl得到標頭檔案
執行完這步會在當前目錄下生成hello.h標頭檔案
soapcpp2-ohello.h //根據生成的標頭檔案來生成存根
如果執行完這步會在當前目錄下生成:
soapcpp2 hello.h -i d:\gsoap_2.7.16\gsoap-2.7\gsoap\import
3 建立新專案ws4
將生成的檔案複製到你工程目錄中:其中stdsoap2.h,stdsoap2.cpp 在 gsoap目錄下 stlvector.h 在 gsoap\import目錄下
注意事項:
2. 常見錯誤示例, error c1010 ,一般是預編譯標頭檔案的問題,在主函式中需要選預編譯,新增 stdafx.h
error lnk2001 在網路程式設計中需要wsock32.lib ,新增上即可。
error bk 1506: cannot open file ..... 取消build browse info file
複製完成如圖:
然後將其新增進專案如圖:
5程式設計客戶端
新建hello.cpp
#include "soaph.h" // 得到存根程式
#include "hellosoapbinding.nsmap"
#include
#include
#include
#include "soapstub.h"
#include "stdsoap2.h"
using namespace std;
int main()
{struct soap clientsoap;
string s1 = "****";
string s2 = "";
soap_init(&clientsoap);
if(soap_call_ns1__hello(&clientsoap, null, null, s1, s2) == soap_ok)
{cout<6 編譯執行:
gsoap及onvif開發客戶端框架的生成(一)
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 recei...
C 開發OPC客戶端
第乙個隨筆,使用了open live write,作為客戶端.最近使用c 開發乙個小軟體,主要功能是opc客戶端.以後會開發各類別的協議,作為,協議的 棧.因為我本人是搞自動化的,所以搞自動化小夥伴像我這樣喜歡程式設計的可能有,但是一般是邏輯思維強,但是底子相對還是弱的.1,c 開發opc的準備工作...
ONVIF客戶端開發
在使用 gsoap 框架生成 之後,得到檔案 soapc.c soapclient.c stdsoap2.c stdsoap2.h duration.c wsdd.h我們利用現有的soapclient,呼叫api構建onvif請求 包括xml,http client 開發前需要了解一下onvif官網...