次の方法で共有


HttpSimpleClientProtocol クラス

単純な HTTP-GET プロトコル バインディングおよび HTTP-POST プロトコル バインディングを使用して、XML Web サービスとの通信を行うための基本クラス。

この型のすべてのメンバの一覧については、HttpSimpleClientProtocol メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Web.Services.Protocols.WebClientProtocol
            System.Web.Services.Protocols.HttpWebClientProtocol
               System.Web.Services.Protocols.HttpSimpleClientProtocol
                  System.Web.Services.Protocols.HttpGetClientProtocol
                  System.Web.Services.Protocols.HttpPostClientProtocol

MustInherit Public Class HttpSimpleClientProtocol
   Inherits HttpWebClientProtocol
[C#]
public abstract class HttpSimpleClientProtocol :
   HttpWebClientProtocol
[C++]
public __gc __abstract class HttpSimpleClientProtocol : public
   HttpWebClientProtocol
[JScript]
public abstract class HttpSimpleClientProtocol extends
   HttpWebClientProtocol

スレッドセーフ

この型は、マルチスレッド操作に対して安全です。

解説

HTTP 経由で XML Web サービスとの通信を行う大部分の実装が、エンコーダを使用してパラメータと戻り値を共通の MIME 形式にエンコードすることを指定します。これらのエンコーダは、 MimeFormatter クラスから派生します。既定では、 HttpSimpleClientProtocol から派生したプロキシ クラスは、application/x-www-form-urlencoded MIME タイプおよび書式なし XML の応答を私用して、パラメータをエンコードします。カスタムの MIME フォーマッタは、 HttpMethodAttribute 属性を使用して指定できますが、これをサービスの説明やプロキシの生成に統合するためのサポートは行われません。

Notes to Inheritors: このクラスをオーバーライドすると、特定のタイプの XML Web サービスに固有のメソッドを派生クラスに導入できます。これらのメソッドは、単にパラメータをキャプチャし、サイトと通信する作業を実行する基本クラスを呼び出します。導入されたメソッドが非同期の場合は、 BeginInvoke および EndInvoke を呼び出します。導入されたメソッドが同期の場合は、 Invoke を呼び出します。オーバーライドされたコンストラクタは一般的に Url プロパティに、XML Web サービス メソッドの URI を設定します。

Wsdl.exe ユーティリティは、指定された サービスの説明 に対する HttpSimpleClientProtocol の派生クラスを生成します。

使用例

Wsdl.exe ユーティリティによって、下の Math XML Web サービス用に生成されるプロキシ クラスの例を次に示します。プロキシ クラスは、 HttpGetClientProtocol から派生します。このクラスは、 HttpSimpleClientProtocol 抽象クラスから派生します。

 
Option Strict On
Option Explicit On

Imports System
Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization


Public Class MyMath
    Inherits System.Web.Services.Protocols.HttpGetClientProtocol
    
    <System.Diagnostics.DebuggerStepThroughAttribute()>  _
    Public Sub New()
        MyBase.New
        Me.Url = "https://www.contoso.com/math.asmx"
    End Sub
    
    <System.Diagnostics.DebuggerStepThroughAttribute(),  _
     System.Web.Services.Protocols.HttpMethodAttribute(GetType(System.Web.Services.Protocols.XmlReturnReader), GetType(System.Web.Services.Protocols.UrlParameterWriter))>  _
    Public Function Add(ByVal num1 As String, ByVal num2 As String) As <System.Xml.Serialization.XmlRootAttribute("int", [Namespace]:="https://www.contoso.com/", IsNullable:=false)> Integer
        Return CType(Me.Invoke("Add", (Me.Url + "/Add"), New Object() {num1, num2}),Integer)
    End Function
    
    <System.Diagnostics.DebuggerStepThroughAttribute()>  _
    Public Function BeginAdd(ByVal num1 As String, ByVal num2 As String, ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult
        Return Me.BeginInvoke("Add", (Me.Url + "/Add"), New Object() {num1, num2}, callback, asyncState)
    End Function
    
    <System.Diagnostics.DebuggerStepThroughAttribute()>  _
    Public Function EndAdd(ByVal asyncResult As System.IAsyncResult) As Integer
        Return CType(Me.EndInvoke(asyncResult),Integer)
    End Function
End Class

[C#] 
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.Web.Services;


public class MyMath : System.Web.Services.Protocols.HttpGetClientProtocol {
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    public MyMath() {
        this.Url = "https://www.contoso.com/math.asmx";
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.Web.Services.Protocols.HttpMethodAttribute(typeof(System.Web.Services.Protocols.XmlReturnReader), typeof(System.Web.Services.Protocols.UrlParameterWriter))]
    [return: System.Xml.Serialization.XmlRootAttribute("int", Namespace="https://www.contoso.com/", IsNullable=false)]
    public int Add(string num1, string num2) {
        return ((int)(this.Invoke("Add", (this.Url + "/Add"), new object[] {num1,
                    num2})));
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    public System.IAsyncResult BeginAdd(string num1, string num2, System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("Add", (this.Url + "/Add"), new object[] {num1,
                    num2}, callback, asyncState);
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    public int EndAdd(System.IAsyncResult asyncResult) {
        return ((int)(this.EndInvoke(asyncResult)));
    }
}

[C++] 
#using <mscorlib.dll>
#using <System.Web.Services.dll>
#using <System.Xml.dll>
#using <System.dll>
using namespace System::Diagnostics;
using namespace System::Xml::Serialization;
using namespace System;
using namespace System::Web::Services::Protocols;
using namespace System::Web::Services;


public __gc class MyMath : public System::Web::Services::Protocols::HttpGetClientProtocol {
    
public:
    [System::Diagnostics::DebuggerStepThroughAttribute]
    MyMath() {
        this->Url = S"https://www.contoso.com/math.asmx";
    }
    
    [System::Diagnostics::DebuggerStepThroughAttribute]
    [System::Web::Services::Protocols::HttpMethodAttribute(__typeof(System::Web::Services::Protocols::XmlReturnReader),
        __typeof(System::Web::Services::Protocols::UrlParameterWriter))]
    [returnvalue: System::Xml::Serialization::XmlRootAttribute(S"int", Namespace=S"https://www.contoso.com/", IsNullable=false)]
    int Add(String* num1, String* num2) {
        Object* temp0 [] = {num1, num2};
        return *dynamic_cast<__box int*>(this->Invoke(S"Add", (String::Concat( this->Url, S"/Add" )), temp0));
    }
    
    [System::Diagnostics::DebuggerStepThroughAttribute]
    System::IAsyncResult* BeginAdd(String* num1, String* num2, System::AsyncCallback* callback, Object* asyncState) {
        Object* temp1 [] = {num1, num2};
        return this->BeginInvoke(S"Add", (String::Concat( this->Url, S"/Add" )), temp1, callback, asyncState);
    }
    
    [System::Diagnostics::DebuggerStepThroughAttribute]
    int EndAdd(System::IAsyncResult* asyncResult) {
        return *dynamic_cast<__box int*>(this->EndInvoke(asyncResult));
    }
};

上のプロキシ クラスの作成元の Math XML Web サービスの例を次に示します。

 
Imports System.Web.Services
Imports System

Public Class Math
    <WebMethod()> _
    Public Function Add(num1 As Integer, num2 As Integer)As Integer
    
        Return num1 + num2
    End Function
    
End Class


[C#] 
using System.Web.Services;
using System;

public class Math {
     [ WebMethod ]
     public int Add(int num1, int num2) {
         return num1+num2;
         }
}


[C++] 
#using <mscorlib.dll>
#using <System.EnterpriseServices.dll>
#using <System.Web.Services.dll>
using namespace System::Web::Services;
using namespace System;
 
public __gc class Math {
public:
     [ WebMethod ]
     int Add(int num1, int num2) {
         return num1+num2;
         }
};


[JScript] 
import System.Web.Services
import System

class Math{
    public WebMethod()
    function Add(num1 : int, num2 : int): int{
        return num1 + num2
    }   
}

必要条件

名前空間: System.Web.Services.Protocols

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Web.Services (System.Web.Services.dll 内)

参照

HttpSimpleClientProtocol メンバ | System.Web.Services.Protocols 名前空間 | SoapHttpClientProtocol