加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何从HttpResponseMessage获取特定的头值

发布时间:2020-12-15 06:25:45 所属栏目:百科 来源:网络整理
导读:我想在这个话题中开始一点点上下文.我正在做一些测试,以建立一个从本地WP8应用程序到BaasBox服务器的连接.在这一点上,我已经实现了这一点. 作为登录响应,BaasBox在HttpResponseMessage对象的头部分中返回一个会话代码(X-BB-SESSION).这里是尝试从HttpRespons
我想在这个话题中开始一点点上下文.我正在做一些测试,以建立一个从本地WP8应用程序到BaasBox服务器的连接.在这一点上,我已经实现了这一点.

作为登录响应,BaasBox在HttpResponseMessage对象的头部分中返回一个会话代码(X-BB-SESSION).这里是尝试从HttpResponseMessage对象获取特定头文件时遇到麻烦的地方.

我正在使用foreach语句来遍历所有标题(MSDN link).但是编译器却不能说这是不行的:

foreach语句不能对System.net.http.headers.cachecontrolheadervalue类型的变量进行操作,因为“System.net.http.headers.cachecontrolheadervalue”不包含“GetEnumerator”的公共定义

这是我尝试的代码:

//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值)的标题contet是这样的:

访问控制允许原产地:*
访问控制 – 允许标题:X请求
X-BB-SESSION:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

有谁知道如何读标题?任何帮助将是非常欣赏

问候!

解决方法

您应该可以使用 TryGetValues方法.
HttpHeaders headers = response.Headers;
IEnumerable<string> values;
if (headers.TryGetValues("X-BB-SESSION",out values))
{
  string session = values.First();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读