有没有更好的方法来验证请求是否接受 JSON

本文关键字:是否 JSON 请求 验证 更好 方法 有没有 | 更新日期: 2023-09-27 17:47:21

实际上,我正在使用这种方式。你有更好的方法吗?

private bool AcceptJson(HttpRequest request)
{
    const string JsonType = "application/json";
    if (request.ContentType.ToLower(CultureInfo.InvariantCulture).StartsWith(JsonType))
    {
        return true;
    }
    if (request.AcceptTypes.Select(t => t.ToLower(CultureInfo.InvariantCulture) == JsonType).Count() > 0)
    {
        return true;
    }
    return false;
}

有没有更好的方法来验证请求是否接受 JSON

这种方法可能会导致误报(它不考虑应用程序/JSON 是子字符串的 q 值或内容类型)。

你可以在这篇关于XHTML的文章中找到一个不错的Accept头解析器。您必须将算法移植到您选择的语言,并针对您正在使用的内容类型对其进行调整。

很难知道你所说的"更好"是什么意思。严格来说,您无需担心内容类型,因此可以将其删除。我想从技术上讲,更好的方法是删除 Select 调用并将条件放入 Count 方法中。