【问题标题】:If-None-Match header always null in asp.net core controllerif-None-Match 标头在 asp.net 核心控制器中始终为空
【发布时间】:2017-12-31 07:07:12
【问题描述】:

我通过邮递员发送了一个带有“If-None-Match”标头的请求,但它在控制器中始终是null

我使用的是 Asp.net core 1.1。

我的代码有什么问题吗?

调试 代码

if (Request.Headers.ContainsKey("If-None-Match"))
{
    var oldETag = Request.Headers["If-None-Match"].First();
    if (cache.Get($"Tenant-{id}-{oldETag}") != null)
    {
        return StatusCode((int)HttpStatusCode.NotModified);
    }
}

更新 1

我创建了一个带有If-MatchIf-None-Match 标头的新请求,但控制器If-None-Match 仍然存在null 中只有If-Match 标头。

【问题讨论】:

    标签: asp.net-core .net-core postman etag


    【解决方案1】:
    • 您在调试器中查看了错误的标头。而是在HeaderIfMatch 上检查HeaderIfNoneMatch

    • Request.Headers.ContainsKey("If-None-Match") - 此代码很好,可以通过 Postman 为我工作。但是,根据屏幕截图,您似乎将 If-None-Match 添加为查询参数,而不是作为标题。

    【讨论】:

    • - HeaderIfNoneMatch 也为空。在邮递员中,我在标题选项卡中添加了值,因此它不是查询字符串。
    【解决方案2】:

    你能试试这个语法吗? request.Headers.Keys.Contains(HeaderNames.IfNoneMatch)

    您可以从using Microsoft.Net.Http.Headers; 导入HeaderNames

    【讨论】:

      猜你喜欢
      • 2019-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多