【问题标题】:Getting Header Values in WebApi 2 Controller在 WebApi 2 控制器中获取标头值
【发布时间】:2015-03-14 07:30:42
【问题描述】:

在 WebApi2 控制器中访问标头值的正确方法是什么?我有这样的方法:

    [Route(Name ="Stuff")]
    public SysDataTablePager Get(string sEcho, int iDisplayStart)

它将分页的 json 数据返回到 jquery DataTable。

我正在尝试获取搜索值。

var nameFilter = Convert.ToString(Request["sSearch_1"]);

但我收到此错误:

无法将带有 [] 的索引应用于“System.Net.Http.HttpRequestMessage”类型的表达式

【问题讨论】:

    标签: asp.net-web-api


    【解决方案1】:

    试试这个

    IEnumerable<string> headerValues;
    var nameFilter= string.Empty;
    if (Request.Headers.TryGetValues("sSearch_1", out headerValues))
    {
        nameFilter = headerValues.FirstOrDefault();
    }
    

    【讨论】:

    • Headers 是 Request 对象中的一个集合。您需要以访问集合中成员的方式访问它。如果这对你有用,请接受它作为答案
    • 或者您可以在您的操作参数上使用[FromHeader],它会自动从您的请求标头中直接提取它。
    【解决方案2】:

    ASP.Net Core Web 应用程序 (.Net Core) 用于 Web api 项目。

    试试这个

    //check the header
    StringValues headerValues;
    var nameFilter = string.Empty;
    if (Request.Headers.TryGetValue("X-Custom-Token", out headerValues)) {
      //validate the token
      nameFilter = headerValues.FirstOrDefault();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 2014-10-08
      • 2013-04-03
      • 2020-09-07
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多