Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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
Asp.net Web Api获取请求头_Asp.net_Asp.net Web Api - Fatal编程技术网

Asp.net Web Api获取请求头

Asp.net Web Api获取请求头,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有一个Api项目,其中我有两个不同的控制器: 一个控制器是System.Web.Mvc控制器: 公共类HomeController:控制器 因此,我定义了如下请求: 另一个控制器是Api控制器: 公共类日历控制器:ApiController { 私有字符串_accessToken public CalendarController() { IEnumerable<string> accessTokenValues; var requ

我有一个Api项目,其中我有两个不同的控制器:

一个控制器是System.Web.Mvc控制器:

公共类HomeController:控制器

因此,我定义了如下请求:

另一个控制器是Api控制器:

公共类日历控制器:ApiController { 私有字符串_accessToken

    public CalendarController()
    {
        IEnumerable<string> accessTokenValues;

        var request = System.Web.HttpContext.Current.Request;

        var token = request.Headers.GetValues("token");
        //var tokenValues = accessTokenValues as string[] ?? accessTokenValues.ToArray();
        //_accessToken = (tokenValues.Any()) ? tokenValues.First() : "";
    } }
公共日历控制器()
{
IEnumerable AccessTokenValue;
var request=System.Web.HttpContext.Current.request;
var token=request.Headers.GetValues(“token”);
//var tokenValues=accessTokenValues作为字符串[]?accessTokenValues.ToArray();
//_accessToken=(tokenValues.Any())?tokenValues.First():“”;
} }
我在请求头中添加了“token”,但无法在Api控制器中获取它。请帮帮我!
谢谢

发起调用方负责设置请求头。因此,将头添加到HomeController的第一个请求中意味着它不会添加到CalendarController的后续请求中。查看:了解有关ASP.NET请求-响应管道的更多详细信息

最终,它取决于您想要实现什么,以及如何添加到标题中


例如,如果服务器端的所有信息都要添加到请求头中,并且您正在使用OWIN,那么您可以添加一个自定义中间件层,该层将拦截传入呼叫,并在请求到达控制器时添加自定义头。(

谁在调用api端点?调用此api端点的人应该发送头值。Rite?请解释更多细节。我的代码首先在HomeController中运行以设置令牌值。然后,我想把它放到Api控制器上。Http是无状态的!您试图通过设置标题来实现什么。你能详细说明你的用例吗?
    public CalendarController()
    {
        IEnumerable<string> accessTokenValues;

        var request = System.Web.HttpContext.Current.Request;

        var token = request.Headers.GetValues("token");
        //var tokenValues = accessTokenValues as string[] ?? accessTokenValues.ToArray();
        //_accessToken = (tokenValues.Any()) ? tokenValues.First() : "";
    } }