開發(fā)環(huán)境
Win10+Qt5.7+gSOAP2.8.43
使用步驟
1劲绪、下載gSOAP
下載地址:https://sourceforge.net/projects/gsoap2/files/
2、生成.h頭文件
使用 wsdl2h 根據(jù) WSDL 生成一個(gè)C/C++ 語法結(jié)構(gòu)的 .h 頭文件,打開命令行窗口毙玻,進(jìn)入目錄【C:\Java\gsoap-2.8\gsoap\bin\win32】窄做,執(zhí)行下面的命令
bin\win32\wsdl2h -s -ohzsws.h http://192.168.1.21:8088/wbxt/services/mobile?wsdl
目的:實(shí)現(xiàn) WSDL 文件到 .h 文件的數(shù)據(jù)映射
3几缭、soapcpp2
使用 gSOAP 的預(yù)編譯器 soapcpp2 根據(jù)頭文件生成存根文件(soapStub.h)和生成客戶端代碼框架
bin\win32\soapcpp2 -i -x -C -L hzsws.h
目的:生成相應(yīng)的底層通訊代碼
4浙滤、編寫客戶端程序
(1)前面生成的文件加入項(xiàng)目中:
MobileServiceImplServiceSoapBinding.nsmap、
soapC.cpp躯概、
soapH.h登钥、
soapStub.h、
soapMobileServiceImplServiceSoapBindingProxy.cpp娶靡、
soapMobileServiceImplServiceSoapBindingProxy.h牧牢、
stdsoap2.cpp、
stdsoap2.h
(2)在 .pro 文件中加入下面一句:
LIBS += C:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/lib/libws2_32.a
(編譯的時(shí)候總是報(bào)錯(cuò)姿锭,在這里找到了原因 https://wiki.qt.io/How_to_use_gSOAP_with_Qt_for_Web_Service_Client 塔鳍,是因?yàn)闆]有加入 libws2_32.a )注意:在Windows系統(tǒng)下需要加入這句,在Linux和macOS系統(tǒng)下不需要呻此。
(3)編寫自己的代碼
注意事項(xiàng)
1轮纫、在\gsoap_2.8.43\gsoap-2.8\gsoap目錄下執(zhí)行wsdl2h命令,如果在\gsoap_2.8.43\gsoap-2.8\gsoap\bin\win32目錄下執(zhí)行會(huì)提示如下錯(cuò)誤
2焚鲜、在使用wsdl2h命令的時(shí)候-o和路徑之間不要有空格