HttpWebRequest 类

提供 WebRequest 类的 HTTP 特定的实现。

**命名空间:**System.Net
**程序集:**System(在 system.dll 中)

语法

声明
<SerializableAttribute> _
Public Class HttpWebRequest
    Inherits WebRequest
    Implements ISerializable
用法
Dim instance As HttpWebRequest
[SerializableAttribute] 
public class HttpWebRequest : WebRequest, ISerializable
[SerializableAttribute] 
public ref class HttpWebRequest : public WebRequest, ISerializable
/** @attribute SerializableAttribute() */ 
public class HttpWebRequest extends WebRequest implements ISerializable
SerializableAttribute 
public class HttpWebRequest extends WebRequest implements ISerializable

备注

HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。

不要使用 HttpWebRequest 构造函数。使用 System.Net.WebRequest.Create 方法初始化新的 HttpWebRequest 对象。如果统一资源标识符 (URI) 的方案是 http://https://,则 Create 返回 HttpWebRequest 对象。

GetResponse 方法向 RequestUri 属性中指定的资源发出同步请求并返回包含该响应的 HttpWebResponse。可以使用 BeginGetResponseEndGetResponse 方法对资源发出异步请求。

当要向资源发送数据时,GetRequestStream 方法返回用于发送数据的 Stream 对象。BeginGetRequestStreamEndGetRequestStream 方法提供对发送数据流的异步访问。

对于使用 HttpWebRequest 的客户端验证身份,客户端证书必须安装在当前用户的“我的证书”存储区中。

如果在访问资源时发生错误,则 HttpWebRequest 类将引发 WebExceptionWebException.Status 属性包含指示错误源的 WebExceptionStatus 值。当 WebException.StatusWebExceptionStatus.ProtocolError 时,Response 属性包含从资源接收的 HttpWebResponse

HttpWebRequest 将发送到 Internet 资源的公共 HTTP 标头值公开为属性,由方法或系统设置;下表包含完整列表。可以将 Headers 属性中的其他标头设置为名称/值对。注意,服务器和缓存在请求期间可能会更改或添加标头。

下表列出了由属性或方法设置或由系统设置的 HTTP 标头。

标头

设置方

Accept

Accept 属性设置。

Connection

Connection 属性和 KeepAlive 属性设置。

Content-Length

ContentLength 属性设置。

Content-Type

ContentType 属性设置。

Expect

Expect 属性设置。

Date

由系统设置为当前日期。

Host

由系统设置为当前主机信息。

If-Modified-Since

IfModifiedSince 属性设置。

Range

AddRange 方法设置。

Referer

Referer 属性设置。

Transfer-Encoding

TransferEncoding 属性设置(SendChunked 属性必须为 true)。

User-Agent

UserAgent 属性设置。

提示

HttpWebRequest 自动注册。使用以 http://https:// 开头的 URI 之前,不需要调用 RegisterPrefix 方法来注册 System.Net.HttpWebRequest

如果本地计算机配置指定使用代理,或者如果请求指定代理,则使用代理发送请求。如果未指定代理,则请求发送到服务器。

提示

Framework 在创建 SSL 会话时缓存这些会话,如果可能,还尝试对新请求重用缓存的会话。试图重用 SSL 会话时,该框架将使用 ClientCertificates 的第一个元素(如果有);如果 ClientCertificates 为空,则将尝试重用匿名会话。

提示

为安全起见,默认情况下禁用 Cookie。如果您希望使用 Cookie,请使用 CookieContainer 属性启用 Cookie。

示例

下面的代码示例为 URI https://www.contoso.com/. 创建 HttpWebRequest

Dim myReq As HttpWebRequest = _
    WebRequest.Create("https://www.contoso.com/")
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("https://www.contoso.com/");
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "https://www.contoso.com/" ));
HttpWebRequest myReq =
    ((HttpWebRequest)(WebRequest.Create("https://www.contoso.com/")));
var myReq : HttpWebRequest = HttpWebRequest(WebRequest.Create("https://www.contoso.com/"))

.NET Framework 安全性

  • WebPermission  用于访问所请求的 URI 或请求被重定向到的任何 URI。关联的枚举:Connect

继承层次结构

System.Object
   System.MarshalByRefObject
     System.Net.WebRequest
      System.Net.HttpWebRequest

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

HttpWebRequest 成员
System.Net 命名空间

其他资源

defaultProxy 元素(网络设置)