<目次>
(1) SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)
(1-1) SOAP通信とは?
(1-2) SOAP通信のサンプルの概要
(1-3) SOAP通信のサンプル作成手順
(1) SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)
(1-1) SOAP通信とは?
別記事にて纏めていますので、そちらをご参照頂けたらと思います。
⇒(参考)SOAP通信の仕組みやHTTPプロトコルとの違いなど
>目次にもどる
(1-2) SOAP通信のサンプルの概要
「SOAP通信とは?」で紹介しているSOAP通信の概要記事でもご紹介した通り、SOAPの代表的な用途としては(図111)のように、Webサービスを提供するサーバとそのクライアント間のXML通信などが用途として挙げられます。
流れとしては、クライアント側(例:Webサービスを利用するC#モジュール)ではSOAPプロトコルに準拠したXMLをHTTPリクエストに乗せて送ります。サーバ側はそのリクエストを受け取り、要求されたエンドポイントの処理を行い、その結果を再びXML形式で返却する(レスポンス)ような流れです。
(図111)
今回はSOAP通信のイメージを掴むための簡単なサンプルとして、(図111)でいう所の「サーバ」側のWebサービスを作ります。
SOAP型式で通信をする簡単なWebサービス(ASP.NET Web Service=ASMX)を作ってSOAPの通信(XML)で応答が返ってくる様子を見ていきます。「ASP.NET Web Service」はVisual Studioを使って非常に簡単に作る事ができますので、以降で手順をご紹介します。
ちなみに、今回作成するASP.NET Web Service(ASMX)はSOAPプロトコルのV1.1とV1.2をサポートしています。
(1-3) SOAP通信のサンプル作成手順
●STEP1:空のASP.NET Webアプリケーションプロジェクトの作成
まずはWebサービス(ASMX)の入れ物となる空のプロジェクトを作ります。
・①Visual Studioで「ファイル」⇒「新規作成」⇒「プロジェクト」と選択
(図111)①
↓
・②テンプレートは「ASP.NET Webアプリケーション(.NET Framework)を選択
(図121)②
↓
・③プロジェクトの「名前」や「保存場所」を設定して「作成」押下
(図121)③
↓
・④「空」を選択して「作成」押下
(図121)④
↓
・⑤作成完了
(図121)⑤
●STEP2:ASMX(Webサービス)の追加
次に今回のメインとなるASMX(Webサービス)を追加します。
・①プロジェクトを右クリック⇒「追加」⇒「新規」を押下
(図122)①
↓
・②左のツリーから「Web」を選択し、出てきた選択肢から「Webサービス(ASMX)」を選択して「追加」
(図122)②
↓
・③追加完了
追加完了するとソリューションエクスプローラー上に表示されます。
(図123)①
・[WebService(Namespace=”http://XXXXX/”)]に表示されているURLが、今回のWebサービスのURLです。
(図122)③
●STEP3:ASMX(Webサービス)の実行
今回はすぐに結果を見られるよう、簡易的にIIS Express上で実行します。
・①「IIS Express」を押下します。
(図123)①
↓
・②サービスの一覧画面が表示されるので、デフォルトで作成されている「Hello World」をクリックします。
(図123)②
(補足)
このサービスの定義や処理は「XXXX.asmx.cs」(XXXXはご自身のWebサービスの名前)の中で定義されています。
(図124)
(表)
記述 |
意味 |
public class WebService1 : System.Web.Services.WebService |
Webメソッドをカプセル化するクラスです。通常、クラスファイルがWebサービスの機能のカプセル化の役割を果たしています。 |
[WebMethod] |
メソッドに付与する属性です。この[WebMethod]属性を付与する事で、クライアントアプリケーションから確実に呼び出せるようにします。 |
public string HelloWorld()
{
return “Hello World”;
} |
このメソッドの中で、Webサービスの処理の内容を記述しています。この例では文字列「”Hello World”」をクライアントに対して返却します。 |
・③Webサービスに対してリクエストを送る
通常、この手順はWebサービスを使いたいクライアントから行いますが(例:外部のC#プログラム等からSOAP準拠のHTTPリクエストを送る)、今回は簡易的にASMX(Webサービス)に標準で付いているHello Worldのサービスに対してPOSTリクエストを送るボタンが付いているので、そちらを押下します。
(図125)①
内部的には「[Webサービス名].asmx?op=[サービス名]」のURLが呼ばれています。
(図125)②
↓
・④SOAPのレスポンス(XML)の確認
上記を押下すると、SOAPのレスポンス(XMLの応答)が確認できます。
(図126)①
内部的にはサービス(HelloWorld)に対してリクエストを送っています。
(図126)②