Pergunta

Na verdade, estou usando este caminho. Você tem uma maneira melhor?

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;
}
Foi útil?

Solução

Essa abordagem pode levar a falsos positivos (que não leva em conta os valores q ou tipos de conteúdo dos quais application / json é um substring).

Você pode encontrar um acervo considerável cabeçalho Accept analisador em este artigo sobre XHTML . Você vai ter que portar o algoritmo para idioma de sua escolha e adaptá-lo para os tipos de conteúdo que você está usando.

Outras dicas

É difícil saber o que você quer dizer com "melhor". Estritamente falando, você não precisa se preocupar com o tipo de conteúdo, de modo que possa ser removido. Eu acho que tecnicamente a melhor maneira seria para remover o Select chamada e colocar a condição para o método de contagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top