C# 为什么不是';t System.Net.Http.Headers.HttpResponseHeaders可索引?
要从C# 为什么不是';t System.Net.Http.Headers.HttpResponseHeaders可索引?,c#,dotnet-httpclient,C#,Dotnet Httpclient,要从HttpHeaders(或者在我的例子中是HttpResponseHeaders)实例检索标题值,我必须调用GetValues,例如response.Headers.GetValues(“内容长度”)。这很不方便 似乎支持这样的东西是直截了当的: public IEnumerable<string> this[string headerName] { return GetValues(GetHeaderDescriptor(headerName)); } public
HttpHeaders
(或者在我的例子中是HttpResponseHeaders
)实例检索标题值,我必须调用GetValues
,例如response.Headers.GetValues(“内容长度”)
。这很不方便
似乎支持这样的东西是直截了当的:
public IEnumerable<string> this[string headerName]
{
return GetValues(GetHeaderDescriptor(headerName));
}
public IEnumerable this[string headerName]
{
返回GetValues(GetHeaderDescriptor(headerName));
}
HttpHeaders
不支持这一功能的原因是什么,以便启用更简单的响应。Headers[“Content Length”]
?如果您想要一种直接获取头值的方法,可以使用特定于Http的实现,如HttpWebRequest和
例如:
var testRequest = (HttpWebRequest)WebRequest.Create("https://stackoverflow.com/");
var testResponse = (HttpWebResponse)testRequest.GetResponse();
Console.WriteLine(testResponse.Headers["Content-Length"]);
Asp.Net Core的IHeaderDictionary可以很好地解决这个问题,我不明白HttpClient的头类型有什么问题。我投票将这个问题作为主题外的问题来结束,因为“我不反对@MickyD-如果没有技术上的原因,这不起作用,让我们结束这个问题(也许是为了支持相关类的PR!)因为看到HttpWebResponse支持这一点很高兴,但我认为HttpClient是处理HTTP请求的继承者/更现代的方法,所以必须回到这样做并不理想