2010-11-23 43 views
1

我有一個C++應用程序,用於檢查給定網絡中打印機的信息。我需要使用另一個.net Web應用程序中的web服務將這些信息存儲在數據庫中。但我是新來的C + +,我不知道如何我可以使用C++在web服務中調用webmethod。在C++應用程序中沒有添加Web引用選項。如何從C++應用程序中使用.net webservice?

有人可以建議我一個很好的教程嗎? 我的應用程序是一個win32控制檯應用程序。

感謝, Subrat

回答

1

你可以使用Apache的Axis連接到Web服務。

0

既然你暗示Windows,你可能會看看WinInet(在msdn中查找它)。 WinInet是一個非常強大且功能豐富的http客戶端,但使用起來也很複雜,特別是在異步模式下。

0

在客戶端和服務器之間交換的SOAP消息基本上都是XML文檔,它們通過HTTP發送(它們位於HTTP消息的主體中)。如果您知道SOAP請求和響應的格式,則可以使用WinHttp API或更一般的WinINet。另一種解決方案是IXMLHTTPRequest。準備好自己解析XML,可能是使用MSXML

ATL服務器在VS2008中不可用(它被髮布爲community project,所以我不確定微軟是如此熱衷於支持這項技術)。

我在WinCE上使用W​​inINet來訪問Apache Axis2/C Web服務。

0

調查gSoap - 一個偉大的開源C/C++庫,用於訪問Web服務。我廣泛使用它來訪問用.Net編寫的服務。提供商業和非營利許可證。

您只需要wsdl文件/ url,它會爲您生成客戶端/服務器代碼。從網站:

的gSOAP的分發包 包括兩個編譯器工具來開發 您的應用程序:

  1. 的 'wsdl2h' WSDL 解析器。此工具將WSDL和XSD文件轉換爲帶註釋的C/C++ 定義。

  2. 'soapcpp2'存根和 骨架編譯器。此工具從 帶註釋的C/C++定義中生成 RPC代碼和XML串行器。

的 'wsdl2h' 解析器轉換成WSDL gSOAP的的 Web服務的頭文件規範。本規範給出了 服務器功能的C/C++透明視圖。標頭 文件由'soapcpp2'處理爲 生成源代碼樁和 骨架以調用服務或 基於WSDL構建新服務。

相關問題