HttpPostClientProtocol クラス
アセンブリ: System.Web.Services (system.web.services.dll 内)


XML Web サービス クライアントが HTTP-POST プロトコルを使用している場合、既定ではパラメータは HTTP 内でエンコードされ、応答は書式なし XML で返されます。このプロトコルは、MimeFormatter から派生したクラスを使用して、パラメータと戻り値を標準の MIME 形式にエンコードします。使用するエンコーダは、サービスの説明で指定します。
ASP.NET を使用して XML Web サービス クライアントを構築する場合は、呼び出す XML Web サービスで使用する WebClientProtocol から間接または直接に派生するプロキシ クラスを作成する必要があります。XML Web サービス クライアントが HTTP を使用して呼び出すと、WebClientProtocol から順番に派生される HttpSimpleClientProtocol からプロキシ クラスが派生されます。
HttpGetClientProtocol および HttpPostClientProtocol は HttpSimpleClientProtocol から派生し、それぞれ HTTP-GET および HTTP-POST を使用して XML Web サービス メソッドの呼び出しをサポートします。SOAP を使用して XML Web サービスを呼び出しているクライアントは、SoapHttpClientProtocol から派生する必要があります。

Wsdl.exe ユーティリティによって、下の Math XML Web サービス用に生成されるプロキシ クラスの例を次に示します。プロキシ クラスは、HttpPostClientProtocol から派生します。このクラスは、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.HttpPostClientProtocol <System.Diagnostics.DebuggerStepThroughAttribute()> _ Public Sub New() MyBase.New Me.Url = "http://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.HtmlFormParameterWriter))> _ Public Function Add(ByVal num1 As String, ByVal num2 As String) As <System.Xml.Serialization.XmlRootAttribute("int", [Namespace]:="http://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
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.HttpPostClientProtocol { [System.Diagnostics.DebuggerStepThroughAttribute()] public MyMath() { this.Url = "http://www.contoso.com/math.asmx"; } [System.Diagnostics.DebuggerStepThroughAttribute()] [System.Web.Services.Protocols.HttpMethodAttribute(typeof(System.Web.Services.Protocols.XmlReturnReader), typeof(System.Web.Services.Protocols.HtmlFormParameterWriter))] [return: System.Xml.Serialization.XmlRootAttribute("int", Namespace="http://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))); } }
#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 ref class MyMath: public System::Web::Services::Protocols::HttpPostClientProtocol { public: [System::Diagnostics::DebuggerStepThroughAttribute] MyMath() { this->Url = "http://www.contoso.com/math.asmx"; } [System::Diagnostics::DebuggerStepThroughAttribute] [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid , System::Web::Services::Protocols::HtmlFormParameterWriter::typeid)] [returnvalue:System::Xml::Serialization::XmlRootAttribute("snippet1>" ,Namespace="http://www.contoso.com/",IsNullable=false)] int Add( String^ num1, String^ num2 ) { array<Object^>^temp2 = {num1,num2}; return *dynamic_cast<int^>(this->Invoke( "Add", (String::Concat( this->Url, "/Add" )), temp2 )); } [System::Diagnostics::DebuggerStepThroughAttribute] System::IAsyncResult^ BeginAdd( String^ num1, String^ num2, System::AsyncCallback^ callback, Object^ asyncState ) { array<Object^>^temp3 = {num1,num2}; return this->BeginInvoke( "Add", (this->Url + "/Add" ), temp3, callback, asyncState ); } [System::Diagnostics::DebuggerStepThroughAttribute] int EndAdd( System::IAsyncResult^ asyncResult ) { return *dynamic_cast<int^>(this->EndInvoke( asyncResult )); } };
import System.Diagnostics.*; import System.Xml.Serialization.*; import System.*; import System.Web.Services.Protocols.*; import System.Web.Services.*; public class MyMath extends System.Web.Services.Protocols.HttpPostClientProtocol { /** @attribute System.Diagnostics.DebuggerStepThroughAttribute() */ public MyMath() { this.set_Url("http://www.contoso.com/math.asmx"); } //MyMath /** @attribute System.Diagnostics.DebuggerStepThroughAttribute() */ /** @attribute System.Web.Services.Protocols.HttpMethodAttribute( System.Web.Services.Protocols.XmlReturnReader .class, System.Web.Services.Protocols.HtmlFormParameterWriter.class) */ public int Add(String num1, String num2) { return Integer.parseInt(System.Convert.ToString((this.Invoke("Add" , this.get_Url() + "/Add", new Object[]{num1, num2})))) ; } //Add /** @attribute System.Diagnostics.DebuggerStepThroughAttribute() */ public System.IAsyncResult BeginAdd(String num1, String num2, System.AsyncCallback callback, Object asyncState) { return this.BeginInvoke("Add", this.get_Url() + "/Add", new Object[]{num1, num2}, callback, asyncState) ; } //BeginAdd /** @attribute System.Diagnostics.DebuggerStepThroughAttribute() */ public int EndAdd(System.IAsyncResult asyncResult) { return Integer.parseInt(System.Convert.ToString( this.EndInvoke(asyncResult))); } //EndAdd } //MyMath
前のプロキシ クラスの作成元の Math XML Web サービスの例を次に示します。
<%@ WebService Language="VB" Class="Math"%> 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 'Add End Class 'Math

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


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- HttpPostClientProtocol クラスのページへのリンク