Собственно, я так и использую. У тебя есть способ получше?
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 является подстрокой).
Вы можете найти достойный парсер заголовка Accept в эта статья о XHTML. Вам нужно будет перенести алгоритм на выбранный вами язык и адаптировать его для используемых вами типов контента.
Трудно понять, что вы имеете в виду под словом «лучше». Строго говоря, вам не нужно беспокоиться о типе контента, так что его можно удалить. Я предполагаю, что технически лучшим способом было бы удалить вызов Select и поместить условие в метод Count.