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;
}
È stato utile?

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
scroll top