簡單實現gSOAP和ASP.NET的通訊

來源:互聯網
上載者:User

gSOAP是一個跨平台的實現SOAP通訊的開原始碼庫。這是我對這個開源項目到現在為止的不完全瞭解。所以能介紹的就是這些了,可能還存在錯誤。

因為和同事在弄一個項目,要在用戶端用C++和ASP.NET發布的WebService通訊。所以這幾天開始研究這個庫。昨天實現了其例子程式的幾個通訊,因為自己對ASP.NET也是一知半解,所以只能把和ASP.NET發布的WebService通訊留到今天。晚上回家小查了一下ASP.NET的簡單應用,雖然遇到一點問題,還是建立起了一個ASP.NET的伺服器。  沒有寫一行代碼,用了VS想到產生的程式碼,因為只是作為樣本,所以也沒打算去改代碼。

 既然要實現ASP.NET WebService和gSOAP的通訊,ASP.NET構建的網站是必不可少的了。在ASP.NET方面我也是菜鳥,所以我使用的想到產生的程式碼。關於如何建立我想就不介紹了,如果也有人像我這麼菜的,請參考我的上一篇文章《訪問 IIS 中繼資料庫失敗問題以及第一次運行WebService》關於我遇到的一些問題。

建立好以後需要將網站發布出去。比如我們可以在http://localhost/SOAP/Service.asmx這個網址中查看該WebService。我們就可以在瀏覽器中輸入http://localhost/SOAP/Service.asmx?wsdl以擷取wsdl檔案。以wsdl為尾碼名儲存該wsdl檔案。

 到gSOAP官網http://www.cs.fsu.edu/~engelen/soap.html中下載最新的gSOAP版本。可以在bin檔案夾中獲得wsdl2h.exe和soapcpp.exe兩個工具。

wsdl2h.exe是可以根據一個wsdl檔案產生一個.h檔案。假如我們儲存的哪個wsdl檔案名稱為:WebService.wsdl。那麼我們在命令列中輸入:wsdl2h.exe Service.wsdl。這樣就會產生相應的.h檔案。然後由soapcpp.exe根據這個.h檔案來產生相應的代碼檔案。soapcpp.exe -i WebService.h,就會產生相應的檔案,其中ServiceSoap.nsmap, SoapC.cpp, soapH.h, soapServiceSoapProxy.h, soapServiceSoapProxy.cpp, soapStub.h這些檔案是構建gSOAP用戶端所必須的,至於其他檔案用來做什麼,我現在也不知道,若有高手知道,望指點一二。除了這些檔案,我們還需要找到stdsoap2.h, stdsoap2.cpp兩個檔案。在所有的檔案都找到以後,我們需要吧這些檔案加到工程中去。

最後我們需要編寫用戶端程式,他的作用就是用來在伺服器端擷取"Hello word"字串,他的簡單代碼如下:

Code
#include "stdafx.h"

#include "soapServiceSoapProxy.h"
#include "ServiceSoap.nsmap"

const char server[] = "http://localhost/SOAP/Service.asmx";

int main(int argc, char **argv)

    printf("Getting Hello World words!\n");

    ServiceSoapProxy soapService;
    soapService.soap_endpoint = server;

    _ns1__HelloWorld input;
    _ns1__HelloWorldResponse output;
    
    soapService.HelloWorld(&input, &output);

    printf("%s", output.HelloWorldResult->c_str());

    return 0;
}

 

 然後我們就運行代碼就會出現一下字元了:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.