HttpWebClientProtocol 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示所有使用 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 窗体,它调用名为 Math
XML 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 请求的属性。
SoapHttpClientProtocol、 HttpGetClientProtocol、和 HttpPostClientProtocol 间接派生自 HttpWebClientProtocol 提供对 SOAP、HTTP-GET 和 HTTP-POST 的支持。
构造函数
HttpWebClientProtocol() |
初始化 HttpWebClientProtocol 类的新实例。 |
属性
AllowAutoRedirect |
获取或设置客户端是否自动跟随服务器重定向。 |
CanRaiseEvents |
获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
ClientCertificates |
获取客户证书集合。 |
ConnectionGroupName |
获取或设置请求的连接组的名称。 (继承自 WebClientProtocol) |
Container |
获取包含 IContainer 的 Component。 (继承自 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 | (继承自 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 |
获取或设置随每个请求发送的用户代理标头的值。 |
方法
事件
Disposed |
在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |
适用于
线程安全性
此类上的属性将复制到每个 XML Web 服务方法调用的对象的新实例 WebRequest 中。 虽然可以同时从不同线程在同一实例上 WebClientProtocol 调用 XML Web 服务方法,但不会进行同步,以确保将属性的一致快照传输到 WebRequest 对象。 因此,如果需要修改属性并从不同的线程进行并发方法调用,则应使用不同的 XML Web 服务代理实例或提供自己的同步。