SoapHttpClientProtocol 类

定义

指定当使用 SOAP 时客户端代理从其中派生的类。Specifies the class client that proxies derive from when using SOAP.

public ref class SoapHttpClientProtocol : System::Web::Services::Protocols::HttpWebClientProtocol
[System.Runtime.InteropServices.ComVisible(true)]
public class SoapHttpClientProtocol : System.Web.Services.Protocols.HttpWebClientProtocol
type SoapHttpClientProtocol = class
    inherit HttpWebClientProtocol
Public Class SoapHttpClientProtocol
Inherits HttpWebClientProtocol
继承
属性

示例

下面的代码示例是由 wsdl.exe 为Math XML Web service 生成的代理类。The following code example is a proxy class generated by Wsdl.exe for the Math XML Web service. 代理类派生SoapHttpClientProtocol自抽象类,后者派生自抽象WebClientProtocol类。The proxy class derives from SoapHttpClientProtocol, which derives from the abstract WebClientProtocol class.

#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;

namespace MyMath
{

   [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")]
   public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol
   {
   public:

      [System::Diagnostics::DebuggerStepThroughAttribute]
      MyMath()
      {
         this->Url = "http://www.contoso.com/math.asmx";
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add",
      RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/",
      Use=System::Web::Services::Description::SoapBindingUse::Literal,
      ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)]
      int Add( int num1, int num2 )
      {
         array<Object^>^temp0 = {num1,num2};
         array<Object^>^results = this->Invoke( "Add", temp0 );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState )
      {
         array<Object^>^temp1 = {num1,num2};
         return this->BeginInvoke( "Add", temp1, callback, asyncState );
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      int EndAdd( System::IAsyncResult^ asyncResult )
      {
         array<Object^>^results = this->EndInvoke( asyncResult );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }

   };

}


namespace MyMath {
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System;
    using System.Web.Services.Protocols;
    using System.Web.Services;

    [System.Web.Services.WebServiceBindingAttribute(Name="MyMathSoap", Namespace="http://www.contoso.com/")]
    public class MyMath : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public MyMath() {
            this.Url = "http://www.contoso.com/math.asmx";
        }
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.contoso.com/Add", RequestNamespace="http://www.contoso.com/", ResponseNamespace="http://www.contoso.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int Add(int num1, int num2) {
            object[] results = this.Invoke("Add", new object[] {num1,
                        num2});
            return ((int)(results[0]));
        }
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public System.IAsyncResult BeginAdd(int num1, int num2, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("Add", new object[] {num1,
                        num2}, callback, asyncState);
        }
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public int EndAdd(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
    }
}

Option Strict On
Option Explicit On

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

Namespace MyMath
    
    <System.Web.Services.WebServiceBindingAttribute(Name:="MyMathSoap", [Namespace]:="http://www.contoso.com/")>  _
    Public Class MyMath
        Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
        
        <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.SoapDocumentMethodAttribute("http://www.contoso.com/Add", RequestNamespace:="http://www.contoso.com/", ResponseNamespace:="http://www.contoso.com/", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)>  _
        Public Function Add(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
            Dim results() As Object = Me.Invoke("Add", New Object() {num1, num2})
            Return CType(results(0),Integer)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function BeginAdd(ByVal num1 As Integer, ByVal num2 As Integer, ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult
            Return Me.BeginInvoke("Add", New Object() {num1, num2}, callback, asyncState)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function EndAdd(ByVal asyncResult As System.IAsyncResult) As Integer
            Dim results() As Object = Me.EndInvoke(asyncResult)
            Return CType(results(0),Integer)
        End Function
    End Class
End Namespace

下面的代码示例是Math从其生成上一个代理类的 XML Web service。The following code example is the Math XML Web service, from which the preceding proxy class was generated.

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。This example has a text box that accepts user input, which is a potential security threat. 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。By default, ASP.NET Web pages validate that user input does not include script or HTML elements. 有关详细信息,请参阅脚本侵入概述For more information, see Script Exploits Overview.

<%@ WebService Language="C#" Class="MyMath"%>
 using System.Web.Services;
 using System;
 
 [WebService(Namespace="http://www.contoso.com/")] 
 public class MyMath {
    
    [ WebMethod ]
    public int Add(int num1, int num2) {
        return num1+num2;
    }
 }
<%@ WebService Language="VB" Class="MyMath"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="http://www.contoso.com/")> _
Public Class MyMath
    <WebMethod()> _
    Public Function Add(num1 As Integer, num2 As Integer) As Integer
        Return num1 + num2
    End Function 'Add
End Class 'Math

注解

如果要生成 XML Web service 客户端,则必须为 XML Web service 创建间接或直接从WebClientProtocol其派生的代理类。If you are building an XML Web service client, then a proxy class that derives indirectly or directly from WebClientProtocol must be created for the XML Web service. 当 XML Web service 客户端使用 SOAP 调用时,代理类必须从SoapHttpClientProtocol HttpWebClientProtocol派生自的派生。When the XML Web service client calls using SOAP, the proxy class must derive from SoapHttpClientProtocol, which derives from HttpWebClientProtocol. HttpWebClientProtocol反过来,派生自WebClientProtocolHttpWebClientProtocol, in turn, derives from WebClientProtocol.

若要与 XML Web service 通信,请创建间接或直接从中WebClientProtocol为要调用的 XML Web service 派生的代理类。To communicate with an XML Web service, create a proxy class that derives indirectly or directly from WebClientProtocol for the XML Web service you want to call. 请使用 Web 服务描述语言工具(Wsdl.exe)为给定 XML Web service 的服务说明创建代理类,而不是手动创建代理类。Instead of creating the proxy class manually, use the Web Services Description Language tool (Wsdl.exe) to create a proxy class for a given XML Web service's service description. 为 SOAP 协议生成代理类时,通过Invoke方法对 XML Web service 方法进行同步调用,而BeginInvoke使用方法和EndInvoke方法进行异步调用。When a proxy class is generated for the SOAP protocol, synchronous calls to XML Web service methods are made via the Invoke method, whereas asynchronous calls are made using the BeginInvoke method and the EndInvoke method.

继承者说明

重写此类时,可以在派生类中引入特定于特定类型的 XML Web service 的方法。When you override this class, you can introduce methods in the derived class which are specific to a particular type of XML Web service. 方法捕获参数,并调用基类来完成与 XML Web service 通信的工作。The methods capture the parameters and call the base class to do the work of communicating with the XML Web service. 如果引入的方法是异步的,则BeginInvoke(String, Object[], AsyncCallback, Object)调用方法EndInvoke(IAsyncResult)和方法。If the introduced methods are asynchronous, call the BeginInvoke(String, Object[], AsyncCallback, Object) method and the EndInvoke(IAsyncResult) method. 如果引入的方法是同步的,请Invoke(String, Object[])调用方法。If the introduced methods are synchronous, call the Invoke(String, Object[]) method. 重写的构造函数通常Url将属性设置为 XML Web service 方法的 URL。The overridden constructor typically sets the Url property to the URL of the XML Web service method.

构造函数

SoapHttpClientProtocol()

初始化 SoapHttpClientProtocol 类的新实例。Initializes a new instance of the SoapHttpClientProtocol class.

属性

AllowAutoRedirect

获取或设置客户端是否自动跟随服务器重定向。Gets or sets whether the client automatically follows server redirects.

(继承自 HttpWebClientProtocol)
CanRaiseEvents

获取一个指示组件是否可以引发事件的值。Gets a value indicating whether the component can raise an event.

(继承自 Component)
ClientCertificates

获取客户证书集合。Gets the collection of client certificates.

(继承自 HttpWebClientProtocol)
ConnectionGroupName

获取或设置请求的连接组的名称。Gets or sets the name of the connection group for the request.

(继承自 WebClientProtocol)
Container

获取 IContainer,它包含 ComponentGets the IContainer that contains the Component.

(继承自 Component)
CookieContainer

获取或设置 Cookie 集合。Gets or sets the collection of cookies.

(继承自 HttpWebClientProtocol)
Credentials

获取或设置 XML Web services 客户端身份验证的安全凭据。Gets or sets security credentials for XML Web service client authentication.

(继承自 WebClientProtocol)
DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。Gets a value that indicates whether the Component is currently in design mode.

(继承自 Component)
EnableDecompression

获取或设置一个值,该值指示是否为此 HttpWebClientProtocol 启用压缩。Gets or sets a value that indicates whether decompression is enabled for this HttpWebClientProtocol.

(继承自 HttpWebClientProtocol)
Events

获取附加到此 Component 的事件处理程序的列表。Gets the list of event handlers that are attached to this Component.

(继承自 Component)
PreAuthenticate

获取或设置是否启用了预身份验证。Gets or sets whether pre-authentication is enabled.

(继承自 WebClientProtocol)
Proxy

获取或设置用于通过防火墙进行 XML Web services 请求的代理信息。Gets or sets proxy information for making an XML Web service request through a firewall.

(继承自 HttpWebClientProtocol)
RequestEncoding

用于对 XML Web services 发出客户端请求的 EncodingThe Encoding used to make the client request to the XML Web service.

(继承自 WebClientProtocol)
Site

获取或设置 ISiteComponentGets or sets the ISite of the Component.

(继承自 Component)
SoapVersion

获取或设置用于对 XML Web services 修改的 SOAP 请求的 SOAP 协议版本。Gets or sets the version of the SOAP protocol used to make the SOAP request to the XML Web service.

Timeout

指示 XML Web services 客户端等待同步 XML Web services 请求完成的时间(以毫秒计)的回复。Indicates the time an XML Web service client waits for the reply to a synchronous XML Web service request to arrive (in milliseconds).

(继承自 WebClientProtocol)
UnsafeAuthenticatedConnectionSharing

获取或设置一个值,它指示客户端使用 NTLM 身份验证连接到承载 XML Web services 的 Web 服务器时,是否启用连接共享。Gets or sets a value that indicates whether connection sharing is enabled when the client uses NTLM authentication to connect to the Web server that hosts the XML Web service.

(继承自 HttpWebClientProtocol)
Url

获取或设置客户端正在请求的 XML Web services 的基 URL。Gets or sets the base URL of the XML Web service the client is requesting.

(继承自 WebClientProtocol)
UseDefaultCredentials

获取或设置一个值,该值指示是否将 Credentials 属性设置为 DefaultCredentials 属性的值。Gets or sets a value that indicates whether to set the Credentials property to the value of the DefaultCredentials property.

(继承自 WebClientProtocol)
UserAgent

获取或设置随每个请求发送的用户代理标头的值。Gets or sets the value for the user agent header that is sent with each request.

(继承自 HttpWebClientProtocol)

方法

Abort()

取消对 XML Web services 方法的请求。Cancels a request to an XML Web service method.

(继承自 WebClientProtocol)
BeginInvoke(String, Object[], AsyncCallback, Object)

开始使用 SOAP 异步调用 XML Web services 方法。Starts an asynchronous invocation of an XML Web service method using SOAP.

CancelAsync(Object)

取消对 XML Web services 方法的异步调用,除非已完成该调用。Cancels an asynchronous call to an XML Web service method, unless the call has already completed.

(继承自 HttpWebClientProtocol)
CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(继承自 MarshalByRefObject)
Discover()

动态绑定到 Url 处的发现文档中描述的 XML Web services。Dynamically binds to an XML Web service described in the discovery document at Url.

Dispose()

释放 Component 使用的所有资源。Releases all resources used by the Component.

(继承自 Component)
Dispose(Boolean)

释放 Component 使用的非托管资源,并选择性地释放托管资源。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(继承自 Component)
EndInvoke(IAsyncResult)

结束使用 SOAP 异步调用 XML Web services 方法。Ends an asynchronous invocation of an XML Web service method using SOAP.

Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
GetHashCode()

用作默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(继承自 MarshalByRefObject)
GetReaderForMessage(SoapClientMessage, Int32)

返回一个用 XmlReader 参数的 Stream 属性初始化的 SoapClientMessageReturns an XmlReader initialized with the Stream property of the SoapClientMessage parameter.

GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。Returns an object that represents a service provided by the Component or by its Container.

(继承自 Component)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
GetWebRequest(Uri)

为指定的 uri 创建 WebRequestCreates a WebRequest for the specified uri.

GetWebResponse(WebRequest)

将同步请求中的响应返回给 XML Web services 方法。Returns a response from a synchronous request to an XML Web service method.

(继承自 HttpWebClientProtocol)
GetWebResponse(WebRequest, IAsyncResult)

将异步请求中的响应返回给 XML Web services 方法。Returns a response from an asynchronous request to an XML Web service method.

(继承自 HttpWebClientProtocol)
GetWriterForMessage(SoapClientMessage, Int32)

返回用 XmlWriter 参数的 Stream 属性初始化的 SoapClientMessageReturns a XmlWriter initialized with the Stream property of the SoapClientMessage parameter.

InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。Obtains a lifetime service object to control the lifetime policy for this instance.

(继承自 MarshalByRefObject)
Invoke(String, Object[])

使用 SOAP 同步调用 XML Web services 方法。Invokes an XML Web service method synchronously using SOAP.

InvokeAsync(String, Object[], SendOrPostCallback)

异步调用指定的方法。Invokes the specified method asynchronously.

InvokeAsync(String, Object[], SendOrPostCallback, Object)

异步调用指定的方法。Invokes the specified method asynchronously.

MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。Creates a shallow copy of the current MarshalByRefObject object.

(继承自 MarshalByRefObject)
ToString()

返回包含 String 的名称的 Component(如果有)。Returns a String containing the name of the Component, if any. 不应重写此方法。This method should not be overridden.

(继承自 Component)

事件

Disposed

当通过调用 Dispose() 方法释放组件时发生。Occurs when the component is disposed by a call to the Dispose() method.

(继承自 Component)

适用于

线程安全性

此类型是线程安全的。This type is thread safe.

另请参阅