Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我怎样才能得到HttpResponseHeader的名字?_C#_Httpwebrequest_Http Headers - Fatal编程技术网

C# 我怎样才能得到HttpResponseHeader的名字?

C# 我怎样才能得到HttpResponseHeader的名字?,c#,httpwebrequest,http-headers,C#,Httpwebrequest,Http Headers,我能够循环使用response.Headers集合,并像这样显示每个头的值 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postDest); //Set up the request with needed properties etc. HttpWebResponse response = req.GetResponse() as HttpWebResponse; for(int i= 0; i < respons

我能够循环使用response.Headers集合,并像这样显示每个头的值

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postDest);
//Set up the request with needed properties etc.
HttpWebResponse response = req.GetResponse() as HttpWebResponse;    
for(int i= 0; i < response.Headers.Count; i++)
{
      MessageBox.Show(response.Headers[i].ToString());
}
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(postDest);
//使用所需的属性等设置请求。
HttpWebResponse=req.GetResponse()作为HttpWebResponse;
对于(int i=0;i
但是如何获得每个响应负责人的名称字段名

更新:

如果我这样做,我就能得到字段名和值

    for (int i = 0; i < response.Headers.Count; i++)
    {
        MessageBox.Show("Field-Name is: " + response.Headers.GetKey(i).ToString() + " Value is: " + response.Headers[i].ToString());
    }
for(int i=0;i
您可以使用
response.Headers.GetValues(response.Headers.GetKey(i))
您只需执行以下操作:

foreach (var key in response.Headers.AllKeys)
{
  Console.WriteLine(response.Headers[key]);
}

var values=Enumerable.Empty();
if(response.Headers.TryGetValues(“Key”,out values))
{
//检查值
}

为了完整起见,我应该指出,您可以在
WebHeaderCollection
对象本身上调用
.ToString()
。(
Response.Headers.ToString()
)。现在我真的不推荐这种方法,因为该方法的官员说:

此API支持.NET Framework基础架构,不支持 旨在直接从代码中使用


然而,通过ILSpy查看代码时,它并没有做任何事情,只是基于标题在StringBuilder中建立一个名称/值行列表。它确实排除了任何未命名的标题,但我认为这些标题非常罕见。有趣的是,他们没有费心在上面添加过时的编译器属性(可能是为了通过单元测试?),所以使用起来可能是安全的。但是如果你对此感到担忧,我建议你使用问题中的解决方案,它使用直接索引。请注意,直接索引比公认答案中的方法更快,因为它不依赖字符串键或内部哈希表(这方面性能可能不是主要问题)。

谢谢krakover。你让我朝着正确的方向前进如果你想用我的更新更新你的答案,我会选择正确的答案。
foreach (var key in response.Headers.AllKeys)
{
  Console.WriteLine(response.Headers[key]);
}
var values = response.Headers.GetValues("Key")
 var values = Enumerable.Empty<string>();
 if (response.Headers.TryGetValues("Key", out values))
 {
     // check values
 }