我想遍历 HttpRequestMessage
的 HttpRequestHeaders
的所有 Headers .
我只是将我的代码从 HttpWebRequest
迁移到 HttpClient
. 使用 HttpWebRequest
我使用以下代码循环其 WebHeaderCollection
:
StringBuilder headers_ = new StringBuilder();
foreach (string key in headers.AllKeys)
{
headers_.Append(key).Append(':').Append(headers[key]).Append(' ');
}
headers_.Length--;
但 HttpRequestHeaders
没有AllKeys方法 . 它只有 GetValues(string name)
,它只检索一个指定的 Headers .
HttpRequestMessage requestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://postman-echo.com/post"),
Headers = {
{ "header1", "aa" },
{ "header2", "bb" },
},
Content = new StringContent("hi=aa")
}
如何从 requestMessage
以编程方式检索{"header1","aa"},{"header2","bb"}对?
1 回答
由于标头是HttpRequestHeaders类的属性,因此您需要反射来枚举它们,这里是一个枚举标头的代码片段 .