C# HTTP系列2 HttpWebReponse类
System.Net.HttpWebReponse 类提供 WebResponse 类的特定于HTTP的实现。
例子
下面的示例返回一个从HttpWebRequest 对象返回的 HttpWebResponse对象。
1 HttpWebRequest httpWReq = ebRequest.Create("http://www.baidu.com") as HttpWebRequest; 2 3 HttpWebResponse httpWResp = httpWReq.GetResponse() as HttpWebResponse; 4 if(httpWResp!=null) 5 { 6 // 其他业务逻辑 7 8 httpWResp.Close(); 9 }
备注
此类包含对WebResponse类的属性和方法的HTTP特定用法的支持。该HttpWebResponse类用于构建发送HTTP请求HTTP独立的客户端应用程序和接收HTTP响应。
不要将HttpWebResponse与ASP.NET应用程序中使用的HttpResponse类混淆,后者的方法和属性通过ASP.NET的内部Response对象公开。
永远不应该直接创建HttpWebResponse类的实例。而是使用通过调用HttpWebRequest.GetResponse返回的实例。您必须调用Stream.Close或HttpWebResponse.Close方法来关闭响应并释放连接以便重用。没有必要同时调用Stream.Close和HttpWebResponse.Close,但这样做不会导致错误。
从 Internet 资源返回的常见标头信息公开为类的属性。 请参阅下表有关的完整列表。 可以从读取其他标头Headers属性作为名称/值对。
下表显示了可通过属性的常见 HTTP 标头HttpWebResponse类。
| Header | Property |
|---|---|
| 内容编码方式 | ContentEncoding |
| 内容长度 | ContentLength |
| 内容类型 | ContentType |
| 最后修改时间 | LastModified |
| 服务器 | Server |
作为返回来自 Internet 资源的响应的内容Stream通过调用GetResponseStream方法。
属性| CharacterSet |
获取响应的字符集。 |
| ContentEncoding |
获取用于对响应体进行编码的方法。 |
| ContentLength |
获取请求返回的内容的长度。 |
| ContentType |
获取响应的内容类型。 |
| Cookies |
获取或设置与此响应关联的 Cookie。 |
| Headers |
获取来自服务器的与此响应关联的标头。 |
| IsFromCache |
获取一个 Boolean 值,该值指示此响应是否为从缓存中获取的。 (Inherited from WebResponse) |
| IsMutuallyAuthenticated |
获取一个 Boolean 值,该值指示客户端和服务器是否都已经过身份验证。 |
| LastModified |
获取最后一次修改响应内容的日期和时间。 |
| Method |
获取用于返回响应的方法。 |
| ProtocolVersion |
获取响应中使用的 HTTP 协议的版本。 |
| ResponseUri |
获取响应请求的 Internet 资源的 URI。 |
| Server |
获取发送响应的服务器的名称。 |
| StatusCode |
获取响应的状态。 |
| StatusDescription |
获取与响应一起返回的状态说明。 |
| SupportsHeaders |
获取指示标头是否受支持的值。 |
| Close() |
关闭响应流。 |
| CreateObjRef(Type) |
创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (Inherited from MarshalByRefObject) |
| Dispose() |
释放 WebResponse 对象使用的非托管资源。 (Inherited from WebResponse) |
| Dispose(Boolean) |
释放由 HttpWebResponse 使用的非托管资源,并可根据需要释放托管资源。 |
| Equals(Object) |
确定指定的对象是否等于当前对象。 (Inherited from Object) |
| GetLifetimeService() |
检索控制此实例的生存期策略的当前生存期服务对象。 (Inherited from MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
使用将目标对象序列化所需的数据填充 SerializationInfo。 |
| GetResponseHeader(String) |
获取与响应一起返回的标头的内容。 |
| GetResponseStream() |
获取流,该流用于读取来自服务器的响应的体。 |
| GetType() |
获取当前实例的 Type。 (Inherited from Object) |
| InitializeLifetimeService() |
获取生存期服务对象来控制此实例的生存期策略。 (Inherited from MarshalByRefObject) |
| MemberwiseClone() |
创建当前 Object 的浅表副本。 (Inherited from Object) |
| MemberwiseClone(Boolean) |
创建当前 MarshalByRefObject 对象的浅表副本。 (Inherited from MarshalByRefObject) |
| ToString() |
返回表示当前对象的字符串。 (Inherited from Object) |