天天看點

VS2010使用c++、gSOAP建立WebService 圖文教程

VS2010使用c++、gSOAP建立的WebService 圖文教程

作業系統:Windows 7

gsoap版本:2.8.32

C++編譯器/開發環境:Visual Studio 2010

gSOAP編譯工具提供了一個SOAP/XML 關于C/C++ 語言的實作,進而讓C/C++語言開發web服務或用戶端程式的工作變得輕松了很多。絕大多數的C++web服務工具包提供一組API函數類庫來處理特定的SOAP資料結構,這樣就使得使用者必須改變程式結構來适應相關的類庫。與之相反,gSOAP利用編譯器技術提供了一組透明化的SOAP API,并将與開發無關的SOAP實作細節相關的内容對使用者隐藏起來。

http://120.52.73.49/jaist.dl.sourceforge.net/project/gsoap2/gSOAP/gsoap_2.8.32.zip

<a target="_blank" href="https://sourceforge.net/projects/gsoap2/">gSOAP Toolkit</a>

解壓後把下面兩個檔案複制到“C:\Windows”目錄下,或者添加環境變量,這 樣就可以在任何位置執行指令:

soapcpp2.exe

wsdl2h.exe

檔案名:itoa.h

打開CMD指令行,切換目錄到“itoa.h”檔案所在目錄,執行指令:

VS2010使用c++、gSOAP建立WebService 圖文教程

執行完成後,會在檔案夾下面生成以下檔案:

VS2010使用c++、gSOAP建立WebService 圖文教程

經測試直接使用“soapcpp2 -S itoa.h”也是可以的;

1、打開VS2010,檔案》建立》項目

VS2010使用c++、gSOAP建立WebService 圖文教程

2、左側模闆中選擇Visual c++,右側選擇 Win32 控制台應用程式,輸入項目名稱,選擇儲存位置,勾選“為解決方案建立目錄”,确定

VS2010使用c++、gSOAP建立WebService 圖文教程

3、下一步

VS2010使用c++、gSOAP建立WebService 圖文教程

4、取消“預編譯頭”的選中狀态,完成

VS2010使用c++、gSOAP建立WebService 圖文教程

1、打開項目檔案目錄

VS2010使用c++、gSOAP建立WebService 圖文教程

2、将第二步生成的代碼複制到項目目錄下

3、添加檔案到項目

VS2010使用c++、gSOAP建立WebService 圖文教程

4、選擇要添加到項目的檔案

這裡沒有列全,有幾個檔案(stdsoap2.h,stdsoap2.cpp)是需要從gSOAP的源碼目錄複制過來的

注意:并不是要把所有檔案都添加到項目裡!

VS2010使用c++、gSOAP建立WebService 圖文教程

5、替換“itoaServer.cpp”檔案的内容,使用以下代碼:

6、編譯生成,在項目名稱上單擊滑鼠右鍵,選擇重新生成

選擇重新生成的好處是避免之前的生成錯誤影響本次生成的結果

VS2010使用c++、gSOAP建立WebService 圖文教程

7、生成成功後,從項目目錄下将“itoa.wsdl”檔案複制到輸出目錄

VS2010使用c++、gSOAP建立WebService 圖文教程

1、打開CMD指令提示符

2、切換目錄到生成輸入目錄

3、執行指令:itoaServer.exe 8087

後面的端口是可以自己定義的,你想用什麼就輸入什麼,隻要是未占用的,不是其它協定/服務常用的;

VS2010使用c++、gSOAP建立WebService 圖文教程

4、允許通路

VS2010使用c++、gSOAP建立WebService 圖文教程

5、打開浏覽器,輸入你的IP:端口号/itoa?wsdl 通路看看吧,正常的話應該顯示“itoa.wsdl”檔案的内容

VS2010使用c++、gSOAP建立WebService 圖文教程

1、更新檔案:itoa.h,添加了一個函數

2、更新檔案:itoaServer.cpp,加入代碼:

3、ns與ns2的差別

目前隻是發現如果頭檔案件中的函數名使用ns2開頭的話(例如:ns2_itoa),那麼生成的WSDL檔案名就是“ns2.wsdl”,時間有限,還沒有深入去研究;另外在官方使用者手冊中也會看到“//gsoap ns2 service”這樣的,也沒有嘗試;

别人如果想通路你的WebService,必須能夠拿到你的 wsdl 檔案(本例中為:itoa.wsdl)才行,還有就是你的WebService運作的伺服器IP及使用的端口。

這裡隻講了如何用c++,gSOAP開發一個WebService供别人調用,以後再講講如何調用的吧。

參考:

http://www.genivia.com/products.html

http://www.genivia.com/doc/soapdoc2.html

http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html

http://www.cppblog.com/qiujian5628/archive/2008/09/16/61945.html

繼續閱讀