日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++调用WebService

發布時間:2025/3/21 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++调用WebService 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. gSOAP是一個開源的項目,用它可以方便的使用c/c++地進行SOAP客戶端和服務器端編程,而不必了解xml和SOAP協議的細節??
? ? wsdl2h.exe: 編譯wsdl文件生成c/c++頭文件??
? ? -o 文件名,指定輸出頭文件??
? ? -n 名空間前綴 代替默認的ns??
? ? -c 產生純C代碼,否則是C++代碼??
? ? -s 不要使用STL代碼?? 達內就業
? ? -t 文件名,指定type map文件,默認為typemap.dat??
? ? -e 禁止為enum成員加上名空間前綴??
? ? soapcpp2.exe: gSOAP編譯器,編譯頭文件生成服務器和客戶端都需要的c/c++文件(默認使用STL,需要stlvector.h)??
? ? -C 僅生成客戶端代碼??
? ? -S 僅生成服務器端代碼??
? ? -L 不要產生soapClientLib.c和soapServerLib.c文件??
? ? -c 產生純C代碼,否則是C++代碼(與頭文件有關)??
? ? -I 指定import路徑(見上文)??
? ? -x 不要產生XML示例文件??
? ? -i 生成C++包裝,客戶端為xxxxProxy.h(.cpp),服務器端為xxxxService.h(.cpp)??
? ?? ?
? ? 2. 生成存客戶端存根程序和框架??
? ? wsdl2h -o xxx.h xxx.wsdl(-t D:/gsoap-2.7/gsoap/typemap.dat)??
? ? soapcpp2 -L -x -i xxx.h(-I D:/gsoap-2.7/gsoap/import)??
? ?? ?
? ? 3. 或直接自己編寫xxx.h,并生成xxx.wsdl??
? ? //gsoap ns service name: xxx??
? ? //gsoap ns service style: rpc??
? ? //gsoap ns service encoding: literal??
? ? //gsoap ns service location: http://localhost:8080??
? ? //gsoap ns schema namespace: http://localhost:8080/xxx.wsdl??
? ? int ns__add(int a, int b, int* result);??
? ?? ?
? ? 3. 客戶端??
? ? 1) 把如下生成的文件添加到項目:??
? ? stdsoap2.h,stdsoap2.cpp,??
? ? soapH.h,soapC.cpp,soapStub.h,??
? ? soapxxxProxy.h,soapxxxProxy.cpp,xxxSoap.nsmap??
? ? wsock32.lib??
? ?? ?
? ? 2) 代理方式調用??
? ? #include "soapTestWebServiceProxy.h"??
? ? #include "TestWebService.nsmap"??
? ? int main(int argc, char* argv[])??
? ? {??
? ???int result = 0;??
? ???TestWebServiceProxy proxy;??
? ???proxy.add(12, 23, &result);??
? ? }??//www.sctarena.com
? ?? ?
? ? 4. 服務端??
? ? 1) 把如下生成的文件添加到項目:??
? ? stdsoap2.h,stdsoap2.cpp,??
? ? soapH.h,soapC.cpp,soapStub.h,??
? ? soapxxxService.h,soapxxxService.cpp,xxxSoap.nsmap??
? ? wsock32.lib??
? ?? ?
? ? 2) 實現接口函數??
? ? int TestWebServiceService::add(int a, int b, int *result)??
? ? {??
? ???*result = a+b;??
? ???return SOAP_OK;??
? ? }??//www.m6wang.com
? ?? ?
? ? 3) 開啟服務??
? ? #include "soapTestWebServiceService.h"??
? ? #include "TestWebService.nsmap"??
? ? int main(int argc, char* argv[])??
? ? {??
? ???TestWebServiceService service;??
? ???service.run(8080);??
? ? }?

總結

以上是生活随笔為你收集整理的C++调用WebService的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。