Question

En fait, j'utilise cette méthode. Avez-vous un meilleur moyen?

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;
}
Était-ce utile?

La solution

Cette approche peut conduire à des faux positifs (elle ne tient pas compte des q valeurs ni des types de contenu dont application / json est une sous-chaîne).

Vous pouvez trouver un analyseur d'en-tête Accept décent dans cet article sur XHTML . Vous devrez porter l'algorithme dans la langue de votre choix et l'adapter aux types de contenu que vous utilisez.

Autres conseils

Il est difficile de savoir ce que vous entendez par "meilleur". Strictement parlant, vous n'avez pas à vous soucier du type de contenu, vous pouvez donc le supprimer. Je suppose que techniquement, un meilleur moyen serait de supprimer l'appel Select et de placer la condition dans la méthode Count.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top