要求がJSONを受け入れるかどうかを確認するより良い方法はありますか?

StackOverflow https://stackoverflow.com/questions/175236

質問

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

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;
}
役に立ちましたか?

解決

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

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

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top