要求がJSONを受け入れるかどうかを確認するより良い方法はありますか?
-
05-07-2019 - |
質問
実際、私はこの方法を使用しています。もっと良い方法はありますか?
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メソッドに条件を設定する方が良いと思います。
所属していません StackOverflow