当我有一个 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 属性,我可以枚举所有可用的标题。有任何想法吗?
谢谢!