¿Hay una mejor manera de verificar si una solicitud acepta JSON?
-
05-07-2019 - |
Pregunta
En realidad, estoy usando de esta manera. ¿Tienes una mejor manera?
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;
}
Solución
Ese enfoque puede llevar a falsos positivos (no tiene en cuenta los valores q o los tipos de contenido de los que application / json es una subcadena).
Puede encontrar un analizador de encabezado Aceptar aceptable en este artículo sobre XHTML . Tendrá que adaptar el algoritmo al idioma de su elección y adaptarlo a los tipos de contenido que esté utilizando.
Otros consejos
Es difícil saber a qué te refieres con " mejor " ;. Estrictamente hablando, no necesita preocuparse por el tipo de contenido, por lo que puede eliminarse. Supongo que, técnicamente, una mejor manera sería eliminar la llamada Select y poner la condición en el método Count.