Necesito verificar el RequestType
de un HttpRequest
en ASP.NET (o WebRequest.Method
). Sé que puedo usar los valores de cadena " POST
" o " GET
" para el tipo de solicitud, pero podría haber jurado que había una constante en algún lugar de alguna clase en .NET que contenía los valores.
Por curiosidad me preguntaba si alguien sabía qué clase de estas constantes de cadena de GET
y POST
fuera. He intentado buscar en línea, pero no he tenido suerte, así que pensé en preguntar aquí.
PATCH
también falta el verbo.También existe
System.Net.Http.HttpMethod
que puede servir en lugar de enum. Puede compararlosaMethod == HttpMethod.Get
, etc. Para obtener el nombre del método de cadena, llame por ejemploHttpMethod.Get.Method
.fuente
void Request(HttpMethod method = HttpMethod.Get)
).HttpMethod.Get.Method
NO es una constante de tiempo de compilación :( dondeSystem.Net.WebRequestMethods.Http
están las constantesEn ASP.NET MVC están en System.Web.Mvc.HttpVerbs . Pero todos los métodos que toman uno de estos valores de enumeración también tienen una anulación de texto, ya que no hay un conjunto completo de verbos HTTP, solo un conjunto de valores definidos actualmente (ver aquí y aquí y aquí ).
No puede crear una enumeración que cubra todos los verbos, ya que existe la posibilidad de que se puedan agregar verbos y las enumeraciones tienen problemas de versiones que hacen que esto no sea práctico.
fuente
En ASP.NET Core , encontrará una colección de cadenas de métodos http en la clase HttpMethods.cs en el
Microsoft.AspNetCore.Http
espacio de nombres.Esta clase también ofrece ayudantes booleanos como
IsGet()
oIsPost()
para una mejor semántica.Tenga en cuenta que estas cadenas están expuestas como
public static readonly string
y no comoconstants
.fuente