Visual C++ 6 コンソール アプリケーションが SoapToolkit 3.0 で Web サービスを呼び出す

Visual C++ 6.0のコンソールアプリケーションでSoapToolkit 3.0を利用してWebサービスを呼び出す手順は次のとおりです。

  1. Microsoft SOAP Toolkit 3.0 をダウンロードしてインストールしてください。
  2. VC6コンソールアプリケーションプロジェクトを新規作成する。
  3. SoapToolkitへの参照をプロジェクトに追加します。VC6では、”プロジェクト”メニューの”プロジェクトに追加”->”コンポーネントとコントロール”->”登録済みActiveXコントロール”を選択し、”SOAP 3.0クライアント”を選択することで、SoapToolkitへの参照を追加します。
  4. プログラム内でSoapToolkit のヘッダーファイルをインクルードする。ヘッダーファイルをインクルードするには、メイン C++ ファイルの先頭に以下を記述する。
#include <mssoap.h>
  1. ISoapConnectorインターフェースオブジェクトを作成して、Webサービスへ接続します。そして、以下のコードをメインcppファイルに追加してください。
ISoapConnector* pConnector = NULL;
CoCreateInstance(CLSID_SoapConnector, NULL, CLSCTX_ALL, IID_ISoapConnector, (void**)&pConnector);
  1. WebService の URL と SOAPAction を設定します。メインの cpp ファイルに次のコードを追加します。
BSTR bstrURL = SysAllocString(L"http://www.example.com/YourWebService.asmx");
pConnector->SetProperty(SOAPCLIENT_PROPERTY_ENDPOINTURL, bstrURL);
SysFreeString(bstrURL);
BSTR bstrSOAPAction = SysAllocString(L"http://www.example.com/YourWebService/YourMethod");
pConnector->SetProperty(SOAPCLIENT_PROPERTY_SOAPACTION, bstrSOAPAction);
SysFreeString(bstrSOAPAction);

「http://www.example.com/YourWebService.asmx」と「http://www.example.com/YourWebService/YourMethod」を実際の Webサービス URL と SOAPAction に置き換えてください。

  1. SOAPEnvelopeオブジェクトを作成し、Webサービスの要求のパラメータを設定します。
ISoapSerializer* pSerializer = NULL;
CoCreateInstance(CLSID_ISoapSerializer, NULL, CLSCTX_ALL, IID_ISoapSerializer, (void**)&pSerializer);
SOAPEnvelope envelope;
envelope.SetSerializer(pSerializer);
// 设置请求参数
envelope.AddBodyElement(L"YourParameterName", L"YourParameterValue");
// 将SOAPEnvelope对象转换为SOAP请求消息
BSTR bstrRequest = NULL;
envelope.GetSOAPMessage(&bstrRequest);

“YourParameterName”を”YourParameterValue”に置き換えてください。

  1. WebService 要求を送信し、応答を取得します。メイン cpp ファイルに以下のコードを追加します。
BSTR bstrResponse = NULL;
pConnector->Send(bstrRequest, &bstrResponse);
// 将SOAP响应消息转换为SOAPEnvelope对象
envelope.LoadXML(bstrResponse);
  1. Web サービスのレスポンスを解析して処理しています。メインの cpp ファイルに次のコードを追加しています:
BSTR bstrResult = NULL;
envelope.GetBodyElement(L"YourResultElementName", &bstrResult);
// 处理响应结果
printf("Response: %s\n", _com_util::ConvertBSTRToString(bstrResult));
SysFreeString(bstrResult);

「YourResultElementName」を実際のレスポンス結果要素名に置き換えてください。

  1. リソースを解放します。main.cppファイルに次のコードを追加します。
SysFreeString(bstrRequest);
SysFreeString(bstrResponse);
pConnector->Release();
pSerializer->Release();

SoapToolkit3.0を利用して、VC6コンソールプログラムでWebサービスを呼び出すには、上記の手順を完了させた後に、状況に応じて、コード内のURL、SOAPAction、リクエストパラメータ名と値、レスポンスの要素名など、変更します。

bannerAds