我需要检查ASP.NET(或RequestType
)中的HttpRequest
的WebRequest.Method
。我知道我可以使用字符串值“POST
”或“GET
”作为请求类型,但我可以发誓在.NET中包含值的某个类中有一个常量。
出于好奇,我想知道是否有人知道GET
和POST
这些字符串常量是什么类。我尝试在线搜索但我没有运气,所以我想我会在这里问。
System.Net.WebRequestMethods.Http
.Connect = "CONNECT"
.Get = "GET"
.Head = "HEAD"
.MkCol = "MKCOL"
.Post = "POST"
.Put = "PUT"
但最终;因为const
表达式被烧入调用者,这与使用“GET”等相同,只是没有拼写错误的风险。
也存在System.Net.Http.HttpMethod
,可以代替枚举。您可以比较它们aMethod == HttpMethod.Get
等。要获取字符串方法名称,例如HttpMethod.Get.Method
。
在ASP.NET MVC中,它们位于System.Web.Mvc.HttpVerbs中。但是,所有采用其中一个枚举值的方法也都有文本覆盖,因为没有完整的HTTP谓词集,只有一组当前定义的值(请参阅here和here以及here)。
你不能创建一个涵盖所有动词的枚举,因为有可能添加动词,而enumerations have versioning issues使这个变得不切实际。
在ASP.NET Core中,您将在HttpMethods.cs命名空间下的Microsoft.AspNetCore.Http
类中找到一组http方法字符串。
这个类还提供了布尔助手,如IsGet()
或IsPost()
,以获得更好的语义。
请注意,这些字符串暴露为public static readonly string
而不是constants
。