【问题标题】:Is there a better way to verify if a request accepts JSON?有没有更好的方法来验证请求是否接受 JSON?
【发布时间】:2010-09-15 13:41:51
【问题描述】:

其实我就是用这种方式的。你有更好的方法吗?

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;
}

【问题讨论】:

    标签: c# asp.net json request content-type


    【解决方案1】:

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

    您可以在this article about XHTML 中找到一个不错的 Accept 标头解析器。您必须将算法移植到您选择的语言中,并根据您使用的内容类型对其进行调整。

    【讨论】:

      【解决方案2】:

      很难理解您所说的“更好”是什么意思。严格来说,您不需要担心内容类型,因此可以将其删除。我想技术上更好的方法是删除 Select 调用并将条件放入 Count 方法中。

      【讨论】:

        猜你喜欢
        • 2015-09-05
        • 2016-10-28
        • 1970-01-01
        • 2013-09-17
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 2017-08-14
        • 2023-04-05
        相关资源
        最近更新 更多