Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C# ネットワーク (Network)

SOAP通信のサンプルをご紹介(ASP.NET Web Service=ASMXを使ったHelloWorld)

投稿日:2021年8月21日 更新日:

 

<目次>

(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)②
 

Adsense審査用広告コード


Adsense審査用広告コード


-C#, ネットワーク (Network)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Xamarin.Formsで画面遷移を実装する手順について+ソースコードも紹介

<目次> (1) Xamarin.Formsで画面遷移を実装する手順について  (1-1) 遷移先ページの追加  (1-2) 画面遷移ロジック追加   (1-2-1) ボタンコントロールの追加   ( …

C#で文字列の前に付いてるアットマーク「@」について

<目次> (1) C#で文字列の前に付いてるアットマーク「@」について  (1-1) 概要  (1-2) 主な用途  (1-3) 注意点 (1) C#で文字列の前に付いてるアットマーク「@」について …

ASP.NETのRazor入門~Razorとは?や使い方をご紹介

<目次> (1) ASP.NETのRazor入門~Razorとは?や使い方をご紹介  (1-1) Razorとは?  (1-2) 基本構文  (1-3) サンプルプログラム (1) ASP.NETのR …

GlobalProtectとは?概要・仕組み・VPNとの違い等についてご紹介

  <目次> (1) GlobalProtectとは?概要・仕組み・VPNとの違い等についてご紹介  (1-1) 従来のIPアドレスベースの保護の問題点  (1-2) GlobalProte …

C#のコンソールアプリで引数を与えて実行する方法

<目次> (1) C#のコンソールアプリで引数を与えて実行する方法  (1-1) 設定箇所  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#のコンソールアプリで引 …

  • English (United States)
  • 日本語
Top