我有一個C++應用程序,用於檢查給定網絡中打印機的信息。我需要使用另一個.net Web應用程序中的web服務將這些信息存儲在數據庫中。但我是新來的C + +,我不知道如何我可以使用C++在web服務中調用webmethod。在C++應用程序中沒有添加Web引用選項。如何從C++應用程序中使用.net webservice?
有人可以建議我一個很好的教程嗎? 我的應用程序是一個win32控制檯應用程序。
感謝, Subrat
我有一個C++應用程序,用於檢查給定網絡中打印機的信息。我需要使用另一個.net Web應用程序中的web服務將這些信息存儲在數據庫中。但我是新來的C + +,我不知道如何我可以使用C++在web服務中調用webmethod。在C++應用程序中沒有添加Web引用選項。如何從C++應用程序中使用.net webservice?
有人可以建議我一個很好的教程嗎? 我的應用程序是一個win32控制檯應用程序。
感謝, Subrat
你可以使用Apache的Axis連接到Web服務。
有一個使用Visual Studio 2005命名爲Walkthrough: Accessing an XML Web Service Using C++ and the CLR的MSDN文章應該與使用Visual Studio 2008 C++相似。
既然你暗示Windows,你可能會看看WinInet(在msdn中查找它)。 WinInet是一個非常強大且功能豐富的http客戶端,但使用起來也很複雜,特別是在異步模式下。
在客戶端和服務器之間交換的SOAP消息基本上都是XML文檔,它們通過HTTP發送(它們位於HTTP消息的主體中)。如果您知道SOAP請求和響應的格式,則可以使用WinHttp API或更一般的WinINet。另一種解決方案是IXMLHTTPRequest。準備好自己解析XML,可能是使用MSXML。
ATL服務器在VS2008中不可用(它被髮布爲community project,所以我不確定微軟是如此熱衷於支持這項技術)。
我在WinCE上使用WinINet來訪問Apache Axis2/C Web服務。
調查gSoap - 一個偉大的開源C/C++庫,用於訪問Web服務。我廣泛使用它來訪問用.Net編寫的服務。提供商業和非營利許可證。
您只需要wsdl文件/ url,它會爲您生成客戶端/服務器代碼。從網站:
的gSOAP的分發包 包括兩個編譯器工具來開發 您的應用程序:
的 'wsdl2h' WSDL 解析器。此工具將WSDL和XSD文件轉換爲帶註釋的C/C++ 定義。
'soapcpp2'存根和 骨架編譯器。此工具從 帶註釋的C/C++定義中生成 RPC代碼和XML串行器。
的 'wsdl2h' 解析器轉換成WSDL gSOAP的的 Web服務的頭文件規範。本規範給出了 服務器功能的C/C++透明視圖。標頭 文件由'soapcpp2'處理爲 生成源代碼樁和 骨架以調用服務或 基於WSDL構建新服務。
不確定,但是使用CLR C++的Subrat? – 2010-11-23 08:55:37
我不是。它是一個win32控制檯應用程序。 – sid 2010-11-25 07:27:12