ASP NET XML Web asmx XML soap Envelope
ASP. NET における XML Webサービス. asmxファイルに実装し、他のアプリケーションのためにサービスを実行し、 XMLデータを返す <soap: Envelope xmlns: soap=". . . "> <soap: Body> <Add xmlns="http: //www. abc. org/"> <a>10</a> <b>20</b> </Add> </soap: Body> </soap: Envelope> http: //srv/app/Service 1. asmx クライアント アプリケーション XML <soap: Envelope xmlns: soap=". . . "> <soap: Body> <Add. Response xmlns="http: //www. abc. org/"> <Add. Result>30</Add. Result> </Add. Response> </soap: Body> </soap: Envelope> Service 1. asmx 実行 XML を生成
. asmx ファイルとクラス (参考) クラスに Web メソッドを実装する Web. Method 属性を持つメソッドを用意する System. Web. Services. Web. Serviceクラスから派生する (オプション) Service 1. asmx <%@ Web. Service. . . Class="My. Service" %> VB Imports System. Web. Services Public Class My. Service Inherits System. Web. Services. Web. Service <Web. Method> Public Function Add(By. Val a As Integer, _ By. Val b As Integer) _ As Integer Return a + b End Function End Class
. asmx ファイルとクラス (参考) (続き) Service 1. asmx <%@ Web. Service. . . Class="My. Space 1. My. Service" %> C# using System. Web. Services; public class My. Service : System. Web. Services. Web. Service { [Web. Method] public int Add(int a, int b) { return a + b; } }
ワイヤ形式 ASP. NET の XML Webサービスでのワイヤ形式 クライアントから呼び出すことができる Web メソッドとして提供 3種類の方法 HTTP-GET HTTP-POST SOAP over HTTP (HTTP-POST) XML Webサービス http: //server 1/app/Service 1. asmx/Add? a=100&b=100 メソッド呼び出し <int xmlns="http: //tempuri. org/">300</int> (HTTP-GET, HTTP-POST の場合)
探索 ASP. NETでの XML Webサービス探索 XMLドキュメントとして提供 Webサービス記述言語(WSDL)を取得する手がかり XML Webサービス http: //Server/app/Service 1. asmx? disco WSDLの取得方法など <discovery xmlns="http: //schemas. xmlsoap. org/disco/"> <contract. Ref ref="http: //localhost/app/Service 1. asmx? wsdl" doc. Ref="http: //localhost/app/Service 1. asmx" xmlns="http: //schemas. xmlsoap. org/disco/scl/" /> </discovery>
プロキシ クラスの利用 プロキシ クラス SOAP over HTTP を利用 System. Web. Services. Protocols. Soap. Http. Client. Protocol 派生クラス 名前空間 : クライアントプロジェクト既定の名前空間. サーバー名 クラス名 : サーバー側の XML Webサービスクラス名 WSDL の Service要素 Name属性 メソッド名 : サーバー側の XML Webサービスのメソッド名 WSDL の Operation要素 Name属性 VB Imports My. Proj. Srv : : Dim srv As New Service 1() n = obj. Add( 100, 200 ) C# using My. Proj. Srv; : : Service 1 srv = new Service 1(); n = obj. Add( 100, 200 );
- Slides: 20