Asp.net Web Api获取请求头
我有一个Api项目,其中我有两个不同的控制器: 一个控制器是System.Web.Mvc控制器: 公共类HomeController:控制器 因此,我定义了如下请求: 另一个控制器是Api控制器: 公共类日历控制器:ApiController { 私有字符串_accessTokenAsp.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
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() : "";
} }