c++訪問webservice(gsoap簡單使用)

C#建立webservice中並添加add實現加法。測試並記錄url。

 

接下來我們用c++來調用webservice。完成鏈接需要soap協議,這裏我們用到gsoap庫。

下載完成後,需要用到import文件夾,wsdl2h.exe,soapcpp2.exe。

wsdl2h.exe用來完成wsdl轉換.h文件。

soapcpp2.exe用來生成框架文件及接口。

下面測試已經記錄該webservice的url:http://localhost:39014/Service1.asmx

首先生成.h文件這裏我們使用TDSoap做爲我們這次的文件名。通過命令行進入gsoap所在文件夾,執行:

wsdl2h -s -t TDSoap.dat -o TDSoap.h http://localhost:39014/Service1.asmx?wsdl

成功生成TDSoap.h,接下來執行:

soapcpp2 -C -I E:\project\gsoap\importTDSoap.h -L -i –x

這裏的E:\project\gsoap\import是我的計算機上的import文件夾地址,根據情況設置。

執行後生成很多新文件。


新建c++控制檯應用程序TestGSoap,把上面新生成的文件及stdsoap2.h、stdsoap2.cpp拷貝到新建c++程序中。把soapC.cpp、soapService1SoapProxy.cpp、stdsoap2.cpp導入到工程源文件文件夾(防止鏈接錯誤),前期準備工作已完成。

添加#include "soapService1SoapProxy.h"#include "Service1Soap.nsmap"

最後實現add,完成main中add的調用。

int add(int a,int b)

{

    Service1SoapProxy proxy("http://localhost:39014/Service1.asmx",SOAP_C_UTFSTRING);

    //Service1SoapProxyproxy;

    _ns1__add add;

    add.a = 1;

    add.b = 2;

    _ns1__addResponse addr;

    if(proxy.add(&add,addr) == SOAP_OK)

    {

        returnaddr.addResult;

    }

    else

        return-1;

}

int _tmain(int argc,_TCHAR* argv[])

{

   

    cout<<add(1,2)<<endl;

    return 0;

}

查看結果


注意:測試時注意url是否匹配

 

gsoap不僅可以做客戶端也可以做服務端,這塊資料很多不再作講解。

 

源碼下載:http://download.csdn.net/detail/u011736517/9766030

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章