C# 之 HttpWebRequest类
提供 WebRequest 类的 HTTP 特定的实现。
命名空间:System.Net ; 程序集: System(在 System.dll 中)
HttpWebRequest 类型公开以下成员。
名称 | 说明 |
---|---|
HttpWebRequest() | 已过时。初始化 HttpWebRequest 类的新实例。 |
HttpWebRequest(SerializationInfo, StreamingContext) | 已过时。从 SerializationInfo和 StreamingContext 类的指定实例初始化 HttpWebRequest 类的新实例。 |
名称 | 说明 |
---|---|
Accept | 获取或设置 Accept HTTP 标头的值。 |
Address | 获取实际响应请求的 Internet 资源的统一资源标识符 (URI)。 |
AllowAutoRedirect | 获取或设置一个值,该值指示请求是否应跟随重定向响应。 |
AllowReadStreamBuffering | 获取或设置一个值,该值指示是否对从 Internet 资源接收的数据进行缓冲处理。 |
AllowWriteStreamBuffering | 获取或设置一个值,该值指示是否对发送到 Internet 资源的数据进行缓冲处理。 |
AuthenticationLevel | 获取或设置用于此请求的身份验证和模拟的级别。 (继承自 WebRequest。) |
AutomaticDecompression | 获取或设置所使用的解压缩类型。 |
CachePolicy | 获取或设置此请求的缓存策略。 (继承自 WebRequest。) |
ClientCertificates | 获取或设置与此请求关联的安全证书集合。 |
Connection | 获取或设置 Connection HTTP 标头的值。 |
ConnectionGroupName | 获取或设置请求的连接组的名称。 (重写 WebRequest.ConnectionGroupName。) |
ContentLength | 获取或设置 Content-lengthHTTP 标头。 (重写 WebRequest.ContentLength。) |
ContentType | 获取或设置 Content-type HTTP 标头的值。 (重写 WebRequest.ContentType。) |
ContinueDelegate | 获取或设置当从 Internet 资源接收到 HTTP 100 持续响应时调用的委托方法。 |
ContinueTimeout | 获取或设置在接收到来自服务器的 100 次连续响应之前要等待的超时(以毫秒为单位)。 |
CookieContainer | 获取或设置与此请求关联的 cookie。 |
CreatorInstance | 已过时。当在子类中重写时,获取从 IWebRequestCreate 类派生的工厂对象,该类用于创建为生成对指定 URI 的请求而实例化的 WebRequest。 (继承自 WebRequest。) |
Credentials | 获取或设置请求的身份验证信息。 (重写 WebRequest.Credentials。) |
Date | 获取或设置要在 HTTP 请求中使用的 Date HTTP 标头值。 |
DefaultCachePolicy | 获取或设置此请求的默认缓存策略。 |
DefaultMaximumErrorResponseLength | 获取或设置 HTTP 错误响应的默认最大长度。 |
DefaultMaximumResponseHeadersLength | 获取或设置 MaximumResponseHeadersLength 属性的默认值。 |
Expect | 获取或设置 Expect HTTP 标头的值。 |
HaveResponse | 获取一个值,该值指示是否收到了来自 Internet 资源的响应。 |
Headers | 指定构成 HTTP 标头的名称/值对的集合。 (重写 WebRequest.Headers。) |
Host | 获取或设置要在 HTTP 请求中独立于请求 URI 使用的 Host 标头值。 |
IfModifiedSince | 获取或设置 If-Modified-Since HTTP 标头的值。 |
ImpersonationLevel | 获取或设置当前请求的模拟级别。 (继承自 WebRequest。) |
KeepAlive | 获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接。 |
MaximumAutomaticRedirections | 获取或设置请求将跟随的重定向的最大数目。 |
MaximumResponseHeadersLength | 获取或设置响应标题允许的最大长度。 |
MediaType | 获取或设置请求的媒体类型。 |
Method | 获取或设置请求的方法。 (重写 WebRequest.Method。) |
Pipelined | 获取或设置一个值,该值指示是否通过管线将请求传输到 Internet 资源。 |
PreAuthenticate | 获取或设置一个值,该值指示是否随请求发送一个身份验证标头。 (重写 WebRequest.PreAuthenticate。) |
ProtocolVersion | 获取或设置用于请求的 HTTP 版本。 |
Proxy | 获取或设置请求的代理信息。 (重写 WebRequest.Proxy。) |
ReadWriteTimeout | 获取或设置写入或读取流时的超时(以毫秒为单位)。 |
Referer | 获取或设置 Referer HTTP 标头的值。 |
RequestUri | 获取请求的原始统一资源标识符 (URI)。 (重写 WebRequest.RequestUri。) |
SendChunked | 获取或设置一个值,该值指示是否将数据分段发送到 Internet 资源。 |
ServerCertificateValidationCallback | 获取或设置用于验证服务器证书的回调函数。 |
ServicePoint | 获取用于请求的服务点。 |
SupportsCookieContainer | 获取一个值,该值指示请求是否为 CookieContainer 提供支持。 |
Timeout | 获取或设置 GetResponse 和 GetRequestStream 方法的超时值(以毫秒为单位)。 (重写 WebRequest.Timeout。) |
TransferEncoding | 获取或设置 Transfer-encoding HTTP 标头的值。 |
UnsafeAuthenticatedConnectionSharing | 获取或设置一个值,该值指示是否允许经过高速 NTLM 身份验证的连接共享。 |
UseDefaultCredentials | 获取或设置一个 Boolean 值,该值控制默认凭据是否随请求一起发送。 (重写 WebRequest.UseDefaultCredentials。) |
UserAgent | 获取或设置 User-agent HTTP 标头的值。 |
名称 | 说明 |
---|---|
Abort | 取消对 Internet 资源的请求。 (重写 WebRequest.Abort()。) |
AddRange(Int32) | 向请求添加从请求数据的开始处或结束处的特定范围的字节范围标头。 |
AddRange(Int64) | 向请求添加从请求数据的开始处或结束处的特定范围的字节范围标头。 |
AddRange(Int32, Int32) | 向请求添加指定范围的字节范围标头。 |
AddRange(Int64, Int64) | 向请求添加指定范围的字节范围标头。 |
AddRange(String, Int32) | 向请求添加从请求数据的开始处或结束处计算的特定范围的 Range 标头。 |
AddRange(String, Int64) | 向请求添加从请求数据的开始处或结束处计算的特定范围的 Range 标头。 |
AddRange(String, Int32, Int32) | 向请求添加指定范围的范围标头。 |
AddRange(String, Int64, Int64) | 向请求添加指定范围的范围标头。 |
BeginGetRequestStream | 开始对用来写入数据的 Stream 对象的异步请求。 (重写 WebRequest.BeginGetRequestStream(AsyncCallback, Object)。) |
BeginGetResponse | 开始对 Internet 资源的异步请求。 (重写 WebRequest.BeginGetResponse(AsyncCallback, Object)。) |
CreateObjRef | 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。) |
EndGetRequestStream(IAsyncResult) | 结束对用于写入数据的 Stream 对象的异步请求。 (重写 WebRequest.EndGetRequestStream(IAsyncResult)。) |
EndGetRequestStream(IAsyncResult,TransportContext) | 结束对用于写入数据的 Stream 对象的异步请求,并输出与该流关联的 TransportContext。 |
EndGetResponse | 结束对 Internet 资源的异步请求。 (重写 WebRequest.EndGetResponse(IAsyncResult)。) |
Equals(Object) | 确定指定的对象是否等于当前对象。 (继承自 Object。) |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) |
GetHashCode | 作为默认哈希函数。 (继承自 Object。) |
GetLifetimeService | 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。) |
GetObjectData | 基础结构。使用序列化目标对象所需的数据填充 SerializationInfo。 (重写 WebRequest.GetObjectData(SerializationInfo, StreamingContext)。) |
GetRequestStream() | 获取用于写入请求数据的 Stream 对象。 (重写 WebRequest.GetRequestStream()。) |
GetRequestStream(TransportContext) | 获取用于写入请求数据的 Stream 对象,并输出与该流关联的 TransportContext。 |
GetRequestStreamAsync | 当在子类中被重写时,将用于写入数据的 Stream 作为异步操作返回到 Internet 资源。 (继承自 WebRequest。) |
GetResponse | 返回来自 Internet 资源的响应。 (重写 WebRequest.GetResponse()。) |
GetResponseAsync | 当在子类中被重写时,将作为异步操作返回对 Internet 请求的响应。 (继承自 WebRequest。) |
GetType | 获取当前实例的 Type。 (继承自 Object。) |
InitializeLifetimeService | 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。) |
MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object。) |
MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。) |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
名称 | 说明 |
---|---|
ISerializable.GetObjectData | 基础结构。使用将目标对象序列化所需的数据填充 SerializationInfo。 |
不要使用 HttpWebRequest 构造函数。 使用 WebRequest.Create 方法初始化新的 HttpWebRequest 对象。 如果统一资源标识符 (URI) 的方案是 http:// 或 https://,则 Create 返回 HttpWebRequest 对象。
GetResponse 方法向 RequestUri 属性中指定的资源发出同步请求并返回包含该响应的 HttpWebResponse。 可以使用 BeginGetResponse 和 EndGetResponse 方法对资源发出异步请求。
当要向资源发送数据时,GetRequestStream 方法返回用于发送数据的 Stream 对象。 BeginGetRequestStream 和 EndGetRequestStream 方法提供对发送数据流的异步访问。
对于使用 HttpWebRequest 的客户端验证身份,客户端证书必须安装在当前用户的“我的证书”存储区中。
如果在访问资源时发生错误,则 HttpWebRequest 类将引发 WebException。 WebException.Status 属性包含指示错误源的 WebExceptionStatus 值。 当 WebException.Status 为 WebExceptionStatus.ProtocolError 时,Response 属性包含从资源接收的 HttpWebResponse。
HttpWebRequest 将发送到 Internet 资源的公共 HTTP 标头值公开为属性,由方法或系统设置;下表包含完整列表。 可以将 Headers 属性中的其他标头设置为名称/值对。 注意,服务器和缓存在请求期间可能会更改或添加标头。
下表列出了由属性或方法设置或由系统设置的 HTTP 标头。
Header |
设置方 |
---|---|
Accept |
由 Accept 属性设置。 |
Connection |
由 Connection 属性和 KeepAlive 属性设置。 |
Content-Length |
由 ContentLength 属性设置。 |
Content-Type |
由 ContentType 属性设置。 |
Expect |
由 Expect 属性设置。 |
日期 |
由系统设置为当前日期。 |
主机 |
由系统设置为当前主机信息。 |
If-Modified-Since |
由 IfModifiedSince 属性设置。 |
范围 |
由 AddRange 方法设置。 |
Referer |
由 Referer 属性设置。 |
Transfer-Encoding |
由 TransferEncoding 属性设置(SendChunked 属性必须为 true)。 |
User-Agent |
由 UserAgent 属性设置。 |
说明 |
---|
HttpWebRequest 自动注册。 使用以 http:// 或 https:// 开头的 URI 之前,不需要调用 RegisterPrefix 方法来注册 System.Net.HttpWebRequest。 |
本地计算机或应用程序配置文件可能指定使用默认代理。 如果指定了 Proxy 属性,则 Proxy 属性中的代理设置会重写本地计算机或应用程序配置文件,并且 HttpWebRequest 实例将实用指定的代理设置。 如果配置文件中未指定代理并且未指定 Proxy 属性,则 HttpWebRequest 类使用从本地计算机上的 Internet Explorer 中继承的代理设置。 如果 Internet Explorer 中没有代理设置,请求会直接发送到服务器。
HttpWebRequest 类分析从 Internet Explorer 继承的且包含通配符的代理忽略列表时会与 Internet Explorer 直接分析忽略列表不同。 例如,HttpWebRequest 类将来自 Internet Explorer 的其中包含“nt*”的忽略列表分析为正则表达式“nt.$”。 此行为不同于 Internet Explorer 的本机行为。 因此 URL“http://intxxxxx”将忽略使用 HttpWebRequest 类的代理,但它不会忽略使用 Internet Explorer 的代理。
说明 |
---|
Framework 在创建 SSL 会话时缓存这些会话,如果可能,还尝试对新请求重用缓存的会话。 尝试重用 SSL 会话时,该框架将使用 ClientCertificates 的第一个元素(如果有);如果 ClientCertificates 为空,则将尝试重用匿名会话。 |
说明 |
---|
为安全起见,默认情况下禁用 Cookie。 如果您希望使用 Cookie,请使用 CookieContainer 属性启用 Cookie。 |
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
C# 之 HttpWebRequest类的更多相关文章
- HttpWebRequest类
HttpWebRequest类与HttpRequest类的区别. HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebReque ...
- C# HttpWebRequest类
HttpWebRequest类与HttpRequest类的区别. HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebReque ...
- VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用
VB.NET中网络编程的另一种方案---- system.net中的HttpWebRequest类的使用 在VB.net中进行网络编程,除了我之前写的随笔中的使用WinHttp组件进行编程,还有另一种 ...
- C#中调用HttpWebRequest类中Get/Post请求无故失效的诡异问题
先附代码 /// <summary> /// 客户端Http(GET) /// </summary> /// <param name="strUrl" ...
- C#利用 HttpWebRequest 类发送post请求,出现“套接字(协议/网络地址/端口)只允许使用一次”问题
声明:问题虽然已经被解决,但是并没有明白具体原理,欢迎大佬补充. 最近网站出现一个问题,在C#里面使用 HttpWebRequest 类去发送post请求,偶尔 会出现 “套接字(协议/网络地址/端 ...
- HttpWebRequest类与HttpRequest类的区别
HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等. HttpWebR ...
- HttpWebRequest类,及如何使用Cookie(转载)
HttpWebRequest类与HttpRequest类的区别.HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebReques ...
- C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别
C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRe ...
- 利用HttpWebRequest类Post数据至URI
在与第三方系统进行数据对接时,需要把数据post到对方提供的一个url,然后进行相关处理. 这里可利用HttpWebRequest类,该类位于System.Net命名空间下.它提供了一些属性和方法可以 ...
随机推荐
- table表格的属性
border="1"----边框 cellpadding="10%"----单元边缘与其内容之间的空白距离 cellspacing="10%" ...
- 2款好用的Web在线编辑器
1.CKEditor FCKEditor 现在已经重新开发,并改名为 CKEditor. CKeditor是一个专门使用在网页上,开放源代码,高度可定制,跨平台的所见即所得文字编辑器,兼容于绝大部分的 ...
- LeetCode292:Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- HTML5简介及HTML5的发展前景
WEB技术发展越来越迅速,HTML5的到来更是把WEB技术推向了巅峰,目前HTML5技术已经日趋成熟,不仅在PC段,HTML5更是在移动终端上也有广泛的应用,HTML5的未来十分光明,值得我们去学习. ...
- UVa11997K Smallest Sums(优先队列)
K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pick exactly ...
- 在TFS2013上删除项目
TFSDeleteProject 会永久性损坏团队项目,之后无法恢复该项目. 您应该在使用 TFSDeleteProject 之前备份所有重要的项目数据. 若要使用 TFSDeleteProject ...
- webbench压力测试
webbench最多可以模拟3w多个并发请求去测试网站负载能力. 一:获取webbench工具,安装编译: wget http://blog.zyan.cc/soft/linux/webbench/w ...
- sqlserver 自增字段修改为普通主键字段
--增加备份字段alter Table tableName add columnNameBak bigint ; --将主键自增字段 赋值到备份字段update tableNameset column ...
- 测试rest接口的两个工具使用详解(restclient+soapUI)
http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/31/3110764.html http://www.oschina.net/news/618 ...
- XHTML编码规范
1.所有的标记都要有结束标记. 2.所有标记的名称和属性名称都必须使用小写 3.所有的的标记必须合理嵌套 4.属性值必须用引号包含起来 5.需要设置的属性都要给一个值 XHTML 规定所有属性都必须有 ...