web-dev-qa-db-fra.com

Où est la constante pour les valeurs "HttpRequest.RequestType" et "WebRequest.Method" dans .NET?

J'ai besoin de vérifier le RequestType d'un HttpRequest dans ASP.NET (ou WebRequest.Method). Je sais que je peux simplement utiliser les valeurs de chaîne "POST" ou "GET" pour le type de demande, mais j'aurais pu jurer qu'il y avait une constante quelque part dans une classe de .NET qui contenait les valeurs.

Par curiosité, je me demandais si quelqu'un savait dans quelle classe se trouvaient ces constantes de chaîne pour GET et POST. J'ai essayé de chercher en ligne mais je n'ai pas eu de chance, alors j'ai pensé que je ' d demander ici.

80
Dan Herbert
System.Net.WebRequestMethods.Http
    .Connect = "CONNECT"
    .Get = "GET"
    .Head = "HEAD"
    .MkCol = "MKCOL"
    .Post = "POST"
    .Put = "PUT"

En fin de compte, cependant; étant donné que les expressions const sont gravées dans l'appelant, cela est identique à l'utilisation de "GET", etc., sans risque de faute de frappe.

108
Marc Gravell

Existe également System.Net.Http.HttpMethod qui peut servir au lieu d'enum. Vous pouvez les comparer aMethod == HttpMethod.Get, etc. Pour obtenir le nom de la méthode chaîne, par exemple HttpMethod.Get.Method.

32
xmedeko

Dans ASP.NET MVC, ils se trouvent dans System.Web.Mvc.HttpVerbs . Mais toutes les méthodes qui prennent l'une de ces valeurs d'énumération ont également un remplacement de texte, car il n'y a pas d'ensemble complet de verbes HTTP, seulement un ensemble de valeurs actuellement définies (voir ici et ici et ici ).

Vous ne pouvez pas créer une énumération qui couvre tous les verbes, car il est possible que des verbes puissent être ajoutés, et les énumérations ont des problèmes de version qui rendent cela impossible.

15
Will

Dans ASP.NET Core , vous trouverez une collection de chaînes de méthode http dans la classe HttpMethods.cs sous la classe Microsoft.AspNetCore.Http Espace de noms.

Cette classe propose également des assistants booléens tels que IsGet() ou IsPost() pour une meilleure sémantique.

Veuillez noter que ces chaînes sont exposées comme public static readonly string Et non comme constants.

1
B12Toaster