Esiste un modo migliore per verificare se una richiesta accetta JSON?
-
05-07-2019 - |
Domanda
In realtà, sto usando in questo modo. Hai un modo migliore?
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;
}
Soluzione
Questo approccio può portare a falsi positivi (non tiene conto di valori q o tipi di contenuto di cui application / json è una sottostringa).
Puoi trovare un parser di intestazione Accept accettabile in questo articolo su XHTML . Dovrai trasferire l'algoritmo nella tua lingua preferita e adattarlo ai tipi di contenuto che stai utilizzando.
Altri suggerimenti
È difficile sapere cosa intendi per "migliore". A rigor di termini, non è necessario preoccuparsi del tipo di contenuto, quindi può essere rimosso. Immagino che tecnicamente un modo migliore sarebbe rimuovere la chiamata Select e inserire la condizione nel metodo Count.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow