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