我需要将参数从请求标头传递给API控制器操作方法。我怎么能够?

时间:2014-05-05 07:49:02

标签: c# asp.net asp.net-mvc-4 asp.net-web-api2

我正在使用WEB API 2.0进行REST服务开发,我需要将参数从请求标头传递给API控制器操作方法。我怎么能够?

默认情况下,API控制器正在从请求正文中读取参数。 如何从请求标头中读取参数?

[HttpPost]
[Route("abc")]
public IHttpActionResult abcMethod(string s)
{
   //some code
}

我希望上面的abcMethod从请求标头中读取它的参数。

请建议。

2 个答案:

答案 0 :(得分:1)

这个怎么样......

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

答案 1 :(得分:0)

我还是Web API 2的新手,但我通常会这样做

string variale = this.Request.Headers.GetValues("HeaderParameter").First();

任何FirstOrDefault,Single,SingleOrDefault()或类似的东西都可以使用。

此外,Lambda也可以使用:

string variable = this.Request.Headers.First(header => header.Key == "Parameter").Value.FirstOrDefault();