如何从HttpResponseMessage获取特定的标头值 [英] How to get an specific header value from the HttpResponseMessage
本文介绍了如何从HttpResponseMessage获取特定的标头值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在进行HTTP呼叫.我的响应在HttpResponseMessage
对象的标头部分中包含会话代码X-BB-SESSION
.如何获取特定的标头值?
I'm making an HTTP call. My response contains a session code X-BB-SESSION
in the header section of the HttpResponseMessage
object. How do I get that specific header value?
I am using a foreach statement to iterate through all the headers (MSDN link). However the compiler keeps saying that it cannot be done:
foreach statement cannot operate on variables of type
System.net.http.headers.cachecontrolheadervalue because
'System.net.http.headers.cachecontrolheadervalue' doesn't contain
a public definition for 'GetEnumerator'
这是我正在尝试的代码:
This is the code I'm trying:
//Connection code to BaasBox
HttpResponseMessage response = await client.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead);
if (response.IsSuccessStatusCode)
{
//get the headers
HttpResponseHeaders responseHeadersCollection = response.Headers;
foreach (var value in responseHeadersCollection.CacheControl) --> HERE
{
string sTemp = String.Format("CacheControl {0}={1}", value.Name, value.Value);
} else
{
Console.WriteLine("X-BB-SESSION: NOT Found");
}
我试图从中获取值(X-BB-SESSION
值)的标头内容类似于:
The header content from where I'm trying to get the value (X-BB-SESSION
value) is something like:
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
X-BB-SESSION: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
推荐答案
You should be able to use the TryGetValues
method.
HttpHeaders headers = response.Headers;
IEnumerable<string> values;
if (headers.TryGetValues("X-BB-SESSION", out values))
{
string session = values.First();
}
这篇关于如何从HttpResponseMessage获取特定的标头值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文