HttpWebClientProtocol 类

定义

表示所有使用 HTTP 传输协议的 XML Web services 客户端代理的基类。

public ref class HttpWebClientProtocol abstract : System::Web::Services::Protocols::WebClientProtocol
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
type HttpWebClientProtocol = class
    inherit WebClientProtocol
[<System.Runtime.InteropServices.ComVisible(true)>]
type HttpWebClientProtocol = class
    inherit WebClientProtocol
Public MustInherit Class HttpWebClientProtocol
Inherits WebClientProtocol
继承
派生
属性

示例

以下示例是一个 ASP.NET Web 窗体,它调用名为 MathXML Web 服务的 Web 服务。 在 EnterBtn_Click 函数中,Web 窗体允许服务器自动将客户端重定向到其他站点。 它还在调用 XML Web 服务方法之前设置客户端身份验证凭据、代理设置、请求编码和请求超时。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>

<html>
    <script language="C#" runat="server">
       void EnterBtn_Click(Object Src, EventArgs E) 
          {
             MyMath.Math math = new MyMath.Math();

             // Allow the server to redirect the request.
             math.AllowAutoRedirect = true;

             // Set the client-side credentials using the Credentials property.
             ICredentials credentials =
                new NetworkCredential("Joe","password","mydomain");
             math.Credentials = credentials;

             // Set the proxy server to proxyserver, set the port to 80, and specify to bypass
             // the proxy server for local addresses.
             IWebProxy proxyObject = new WebProxy("http://proxyserver:80",true);
             math.Proxy = proxyObject;

             // Set the encoding to utf-8.
             math.RequestEncoding = System.Text.Encoding.UTF8;

             // Set the time out to 15 seconds
             math.Timeout = 15000;

             int total = math.Add(Convert.ToInt32(Num1.Text),
                Convert.ToInt32(Num2.Text));
             Total.Text = "Total: " + total.ToString();
         }
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
           
          Enter the two numbers you want to add and then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>  +
          Number 2: <asp:textbox id="Num2" runat=server/> =
          <asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
   
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>

<html>
    <script language="VB" runat="server">

    Sub EnterBtn_Click(Src As Object, E As EventArgs)
        Dim math As New MyMath.Math()
        
        ' Allow the server to redirect the request.
        math.AllowAutoRedirect = True
        
        ' Set the client-side credentials using the Credentials property.
        Dim credentials = New NetworkCredential("Joe", "password", "mydomain")
        math.Credentials = credentials
        
        ' Set the proxy server to proxyserver, set the port to 80 and specify to bypass
        ' the proxy server for local addresses.
        Dim proxyObject = New WebProxy("http://proxyserver:80", True)
        math.Proxy = proxyObject
        
        ' Set the encoding to utf-8.
        math.RequestEncoding = System.Text.Encoding.UTF8
        
        ' Set the time out to 15 seconds.
        math.Timeout = 15000
        
        Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), _
           Convert.ToInt32(Num2.Text))
        Total.Text = "Total: " & iTotal.ToString()
    End Sub
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
           
          Enter the two numbers you want to add and then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>  +
          Number 2: <asp:textbox id="Num2" runat=server/> =
          <asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
   

注解

此类上的属性用于控制用于传输 XML Web 服务请求和响应的 HTTP 请求对象的行为。 属性映射到在 . 上 HttpWebRequest找到的属性。

若要使用 HTTP 与 XML Web 服务通信,必须为 XML Web 服务创建间接派生或直接派 HttpWebClientProtocol 生的代理类。 可以使用Wsdl.exe工具为给定 XML Web 服务的服务说明创建代理类,而不是手动创建代理类。

由于 HttpWebClientProtocol 是所有代理类的基类,因此其属性位于代理类上。 这些属性可用于控制基础传输的请求行为。 例如,使用 Proxy 属性通过防火墙调用 XML Web 服务。 其中许多属性用于初始化 HttpWebRequest 发出 Web 请求的属性。

SoapHttpClientProtocolHttpGetClientProtocol、和 HttpPostClientProtocol 间接派生自 HttpWebClientProtocol 提供对 SOAP、HTTP-GET 和 HTTP-POST 的支持。

构造函数

HttpWebClientProtocol()

初始化 HttpWebClientProtocol 类的新实例。

属性

AllowAutoRedirect

获取或设置客户端是否自动跟随服务器重定向。

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
ClientCertificates

获取客户证书集合。

ConnectionGroupName

获取或设置请求的连接组的名称。

(继承自 WebClientProtocol)
Container

获取包含 IContainerComponent

(继承自 Component)
CookieContainer

获取或设置 Cookie 集合。

Credentials

获取或设置 XML Web services 客户端身份验证的安全凭据。

(继承自 WebClientProtocol)
DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。

(继承自 Component)
EnableDecompression

获取或设置一个值,该值指示是否为此 HttpWebClientProtocol 启用压缩。

Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 Component)
PreAuthenticate

获取或设置是否启用了预身份验证。

(继承自 WebClientProtocol)
Proxy

获取或设置用于通过防火墙进行 XML Web services 请求的代理信息。

RequestEncoding

用于对 XML Web services 发出客户端请求的 Encoding

(继承自 WebClientProtocol)
Site

获取或设置 ComponentISite

(继承自 Component)
Timeout

指示 XML Web services 客户端等待同步 XML Web services 请求完成的时间(以毫秒计)的回复。

(继承自 WebClientProtocol)
UnsafeAuthenticatedConnectionSharing

获取或设置一个值,它指示客户端使用 NTLM 身份验证连接到承载 XML Web services 的 Web 服务器时,是否启用连接共享。

Url

获取或设置客户端正在请求的 XML Web services 的基 URL。

(继承自 WebClientProtocol)
UseDefaultCredentials

获取或设置一个值,该值指示是否将 Credentials 属性设置为 DefaultCredentials 属性的值。

(继承自 WebClientProtocol)
UserAgent

获取或设置随每个请求发送的用户代理标头的值。

方法

Abort()

取消对 XML Web services 方法的请求。

(继承自 WebClientProtocol)
CancelAsync(Object)

取消对 XML Web services 方法的异步调用,除非已完成该调用。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放由 Component 占用的非托管资源,还可以另外再释放托管资源。

(继承自 Component)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GenerateXmlMappings(Type, ArrayList)

获取由指定类型公开的每个 XML Web services 方法的 XmlMembersMapping,然后将映射存储在指定的 ArrayList 中。

GenerateXmlMappings(Type[], ArrayList)

获取由指定类型公开的每个 XML Web services 方法的 XmlMembersMapping,然后将映射存储在指定的 ArrayList 中,同时也存储在此方法返回的 Hashtable 中。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时。

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
GetWebRequest(Uri)

为指定的 URI 创建一个 WebRequest

GetWebResponse(WebRequest)

将同步请求中的响应返回给 XML Web services 方法。

GetWebResponse(WebRequest, IAsyncResult)

将异步请求中的响应返回给 XML Web services 方法。

InitializeLifetimeService()
已过时。

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ToString()

返回包含 Component 的名称的 String(如果有)。 不应重写此方法。

(继承自 Component)

事件

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)

适用于

线程安全性

此类上的属性将复制到每个 XML Web 服务方法调用的对象的新实例 WebRequest 中。 虽然可以同时从不同线程在同一实例上 WebClientProtocol 调用 XML Web 服务方法,但不会进行同步,以确保将属性的一致快照传输到 WebRequest 对象。 因此,如果需要修改属性并从不同的线程进行并发方法调用,则应使用不同的 XML Web 服务代理实例或提供自己的同步。

另请参阅