Headers 和 GetResponseHeader 之间的 HttpWebResponse 区别
本文关键字:HttpWebResponse 区别 之间 GetResponseHeader Headers | 更新日期: 2023-09-27 18:36:59
当我有一个HttpWebResponse对象时,有两种方法可以访问响应标头:
string dateHeader = webResponse.Headers["Date"];
string dateHeader = webResponse.GetResponseHeader("Date");
它们都返回相同的值,那么为什么有两种方法可以获取标头信息呢?查看 .NET 源代码,如果在 HttpWebReponse 中找到两者的实现:
// retreives response header object
/// <devdoc>
/// <para>
/// Gets
/// the headers associated with this response from the server.
/// </para>
/// </devdoc>
public override WebHeaderCollection Headers {
get {
CheckDisposed();
return m_HttpResponseHeaders;
}
}
/// <devdoc>
/// <para>
/// Gets a specified header value returned with the response.
/// </para>
/// </devdoc>
public string GetResponseHeader( string headerName ) {
CheckDisposed();
string headerValue = m_HttpResponseHeaders[headerName];
return ( (headerValue==null) ? String.Empty : headerValue );
}
我唯一能看到的是,使用 Headers 属性,我可以枚举所有可用的标头。有什么想法吗?
谢谢!
根据 MSDN 库,Headers
属性是所有标头的 WebHeaderCollection。由于它是一个集合,因此对于访问多个标头的名称、值或两者都很有用。它还可以通过以Header[<name>]
格式指示名称来访问单个标头的值。
另一方面,GetResponseHeader()
是一种仅返回单个值值的方法。
总之,区别在于:
- 属性与方法
- 多个标头名称和/或值访问与单个标头值访问