2010-11-23 12 views
1

私は、特定のネットワーク内のプリンタに関する情報をチェックするC++アプリケーションを持っています。私は別の.net WebアプリケーションでWebサービスを使用して、この情報をデータベースに格納する必要があります。しかし、私はC++に新しいと私はどのように私はwebサービスのwebmethodを呼び出すことができないのか分からない+ +を使用してください。 C++アプリケーションにWeb参照オプションを追加することはできません。C + +アプリケーションから.net webserviceを消費する方法は?

誰でも私にこれについての良いチュートリアルを提案できますか? 私のアプリケーションは、Win32コンソールアプリケーションです。

おかげで、 Subrat

答えて

1

あなたはWebサービスに接続するためのApacheからAxisを使用することができます。

2

Visual Studio 2005 C++を使用する場合と同様のWalkthrough: Accessing an XML Web Service Using C++ and the CLRという名前のVisual Studio 2005を使用しているMSDNの記事があります。

+0

CLR C++を使用しているSubratですか? –

+0

私はそうではありません。そのWin32コンソールアプリケーションです。 – sid

0

あなたはWindowsを暗示しているので、WinInetを見るかもしれません(msdnで探します)。 WinInetは、非常に強力で機能豊富なHTTPクライアントですが、特に非同期モードでは使用が複雑です。

0

クライアントとサーバーの間で交換されるSOAPメッセージは、基本的にXMLドキュメントであり、HTTPを介して送信されます(HTTPメッセージの本文にあります)。 SOAP要求と応答の形式を知っている場合は、WinHttp API、またはより一般的なWinINetを使用できます。さらに別の解決策はIXMLHTTPRequestです。おそらくMSXMLを使用して、XMLを自分で解析する準備をしてください。

ATL ServerはVS2008では使用できません(community projectとしてリリースされていますので、Microsoftがこのテクノロジをどの程度サポートしているかはわかりません)。

Apache Axis2/C WebサービスにアクセスするためにWinCEでWinINetを使用しました。

+0

Wininetにサンプルチュートリアルはありますか?私が使用しているWebサービスは文字列の配列を返します。私はWinINetを使ってこれを得ることができますか? – sid

+0

MSDNには、このページからWinINetに関する記事があります。http://msdn.microsoft.com/en-us/library/aa385331(v=VS.85).aspx SOAP応答本体の形式を知っていれば、それを解析し、Webメソッド(あなたの場合は文字列の集合)によって返されたデータを抽出することができます。 WireSharkまたはFiddlerを使用すると、SOAPメッセージの構造を見ることができます。 –

0

gSoap - Webサービスにアクセスするための素晴らしいオープンソースのC/C++ライブラリをご覧ください。私はこれを.Netで書かれたサービスにアクセスするために広範囲に使用しました。商用ライセンスと非営利ライセンスが利用可能です。

wsdlファイル/ urlが必要なだけで、クライアント/サーバーコードが生成されます。 アプリケーションを開発するために、2つのコンパイラツールが含まれて

のgSOAP配布パッケージ:

  1. 'wsdl2h' WSDL パーサのWebサイトから。このツールは、WSDLと XSDファイルを注釈付きC/C++ 定義に変換します。

  2. 'soapcpp2'スタブと スケルトンコンパイラ。このツールは、 RPCコードとXMLシリアライザを、 注釈付きC/C++定義から生成します。

'wsdl2h' パーサは Webサービスの のgSOAPヘッダファイルの仕様にWSDLを変換します。この仕様では、 サーバの機能のC/C++透過表示を示しています。 ファイルは 'soapcpp2'で処理され、 ソースコードスタブを生成し、 スケルトンでサービスを呼び出すか、または WSDLに基づいて新しいサービスを構築します。

関連する問題