「Webサービス」C# で SOAP クライントの作成
C# で SOAP クライアントを作ってみたので、その時のメモ。
[ 環境情報 ]
Windows 7 SP1
使用する Web サービスは、以下のエントリーで作成したものにします。
・「Webサービス」Axis2 の環境に Web サービスを登録する - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2013/11/27/012859
1. wsdl.exe を使用してクライアントコードを生成する。
wsdl.exe を使用するとクライアントコードの生成ができるみたいです。
私の環境では "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\wsdl.exe" にいました。
・Web サービス記述言語ツール (Wsdl.exe)
http://msdn.microsoft.com/ja-jp/library/7h3ystb6(v=vs.90).aspx
wsdl のある URL を引数に与えてやるだけ。
wsdl http://***.***.***.***:8080/axis2/services/Axis2Sample?wsdl
すると、上記 Web サービスの場合 "Axis2Sample.cs" というコードが生成される。
2. Web サービスで公開されている API を呼び出す。
1 で生成した Axis2Sample.cs に以下を追記。
public static void Main(string[] args) { Axis2Sample inst = new Axis2Sample(); Console.WriteLine(inst.hello()); Console.WriteLine(inst.getUpperString("abcde")); int r1; bool r2; inst.add(1, true, 2, true, out r1, out r2); Console.WriteLine(r1); }
※ add メソッドの "true" とかはなんでこれ渡して上手くいくのかわかりません・・・。ちなみに false じゃダメだった。
csc Axis2Sample.cs
実行すると以下の結果が得られる。
hello ABCDE 3
ちゃんと呼び出せておりますな。
※ パケットとか見ると、SOAP の通信が行なわれているのが確認できます。
まぁ、単純なサンプルだったからかしりませんが、思ったより簡単にいきました。
以上です。