C# 强制函数参数值
我有以下函数,它发出HTTP请求并以字符串形式返回响应体:C# 强制函数参数值,c#,C#,我有以下函数,它发出HTTP请求并以字符串形式返回响应体: private string getResponseBody(string method, string partialUrl) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_hostPath + partialUrl); req.ContentLength = 0; req.KeepAlive = false; req.Method
private string getResponseBody(string method, string partialUrl)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_hostPath + partialUrl);
req.ContentLength = 0;
req.KeepAlive = false;
req.Method = method;
return new StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd();
}
第一个参数method只能将通用HTTP方法作为值(GET、POST、PUT、DELETE)
要强制输入为这些值之一,我知道我需要创建一个对象,但我无法理解细节。有人能帮忙吗
PS:我正在使用4.0框架
要强制输入为这些值之一,我知道我需要创建一个对象
枚举如何:
public enum HttpMethod
{
GET,
POST,
PUT,
DELETE
}
然后:
private string getResponseBody(HttpMethod method, string partialUrl)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_hostPath + partialUrl);
req.ContentLength = 0;
req.KeepAlive = false;
req.Method = method.ToString();
using (var response = req.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
还请注意,我已经修复了GetResponse代码中的缺陷,您没有处理任何IDisposable对象,这可能导致泄漏和所有令人讨厌的东西。例如,如果您不处理响应对象,则如果多次调用此方法,可能会导致超时。我会将该枚举命名为HttpMethod,除非它是标志枚举。非常感谢!IDisposable很好。您仍然需要进行检查以验证
方法的值。如果有人输入(HttpMethod)10
,你可以使用HttpMethod
类:并使用它的ToString
方法。不幸的是,我使用的是4.0框架,而不是4.5我的道歉,我认为这个东西从一开始就存在。