.NET中的“HttpRequest.RequestType”和“WebRequest.Method”值的常量在哪里?

问题描述 投票:77回答:4

我需要检查ASP.NET(或RequestType)中的HttpRequestWebRequest.Method。我知道我可以使用字符串值“POST”或“GET”作为请求类型,但我可以发誓在.NET中包含值的某个类中有一个常量。

出于好奇,我想知道是否有人知道GETPOST这些字符串常量是什么类。我尝试在线搜索但我没有运气,所以我想我会在这里问。

c# .net asp.net
4个回答
108
投票
System.Net.WebRequestMethods.Http
    .Connect = "CONNECT"
    .Get = "GET"
    .Head = "HEAD"
    .MkCol = "MKCOL"
    .Post = "POST"
    .Put = "PUT"

但最终;因为const表达式被烧入调用者,这与使用“GET”等相同,只是没有拼写错误的风险。


32
投票

也存在System.Net.Http.HttpMethod,可以代替枚举。您可以比较它们aMethod == HttpMethod.Get等。要获取字符串方法名称,例如HttpMethod.Get.Method


15
投票

在ASP.NET MVC中,它们位于System.Web.Mvc.HttpVerbs中。但是,所有采用其中一个枚举值的方法也都有文本覆盖,因为没有完整的HTTP谓词集,只有一组当前定义的值(请参阅herehere以及here)。

你不能创建一个涵盖所有动词的枚举,因为有可能添加动词,而enumerations have versioning issues使这个变得不切实际。


1
投票

在ASP.NET Core中,您将在HttpMethods.cs命名空间下的Microsoft.AspNetCore.Http类中找到一组http方法字符串。

这个类还提供了布尔助手,如IsGet()IsPost(),以获得更好的语义。

请注意,这些字符串暴露为public static readonly string而不是constants

© www.soinside.com 2019 - 2024. All rights reserved.