如何提取网页API消息处理程序自定义头价值? [英] How to extract custom header value in Web API message handler?

查看:133
本文介绍了如何提取网页API消息处理程序自定义头价值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前在我的Web API服务的消息处理程序,覆盖'SendAsync'如下:

I currently have a message handler in my Web API service that overrides 'SendAsync' as follows:

protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
  //implementation
}

在这个code我需要检查命名的自定义添加请求头值 MyCustomID 。问题是,当我做到以下几点:

Within this code I need to inspect a custom added request header value named MyCustomID. The problem is when I do the following:

if (request.Headers.Contains("MyCustomID"))  //OK
    var id = request.Headers["MyCustomID"];  //build error - not OK

...我收到以下错误消息:

...I get the following error message:

无法适用与[]索引到类型的前pression
  System.Net.Http.Headers.Htt prequestHeaders

Cannot apply indexing with [] to an expression of type 'System.Net.Http.Headers.HttpRequestHeaders'

我怎样才能访问的的通过自定义请求头中的Htt prequestMessage MSDN文档)实例传入此重写的方法?

How can I access a single custom request header via the HttpRequestMessage (MSDN Documentation) instance passed into this overridden method?

推荐答案

尝试是这样的:

IEnumerable<string> headerValues = request.Headers.GetValues("MyCustomID");
var id = headerValues.FirstOrDefault();

还有上一个头的方法TryGetValues​​你可以使用,如果你并不总是保证有机会获得头。

There's also a TryGetValues method on Headers you can use if you're not always guaranteed to have access to the header.

这篇关于如何提取网页API消息处理程序自定义头价值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆