4

実際、私はこの方法を使っています。もっと良い方法はありますか?

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

2 に答える 2

3

そのアプローチは誤検知につながる可能性があります (q 値または application/json が部分文字列であるコンテンツ タイプは考慮されません)。

XHTML に関するこの記事で、適切な Accept ヘッダー パーサーを見つけることができます。アルゴリズムを選択した言語に移植し、使用しているコンテンツ タイプに適応させる必要があります。

于 2008-10-06T17:34:05.703 に答える
1

「より良い」とはどういう意味かを理解するのは難しいです。厳密に言えば、コンテンツ タイプを気にする必要はないので、削除できます。技術的には、Select 呼び出しを削除し、条件を Count メソッドに入れる方がよいと思います。

于 2008-10-07T13:43:41.377 に答える