Frage

Eigentlich bin ich mit dieser Art und Weise. Haben Sie einen besseren Weg?

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;
}
War es hilfreich?

Lösung

Dieser Ansatz zu False Positive führen kann (es berücksichtigt nicht q Werte oder Inhaltstypen, von denen application / json ist ein Teil).

Sie können einen anständigen Parser Accept-Header finden in diesem Artikel über XHTML . Sie werden den Algorithmus auf die Sprache Ihrer Wahl in den Hafen haben und passen sie für die Content-Typen Sie verwenden.

Andere Tipps

Es ist schwer zu wissen, was Sie mit „besser“ bedeuten. Genau genommen brauchen Sie nicht über den Inhaltstyp sorgen, so dass entfernt werden kann. Ich denke, technisch eine bessere Möglichkeit wäre, den Select Aufruf zu entfernen und den Zustand in die Count-Methode setzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top