强制功能参数值
本文关键字:参数 功能 | 更新日期: 2023-09-27 18:13:12
我有以下函数,它发出HTTP请求并返回响应体作为字符串:
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对象,这可能导致泄漏和各种讨厌的东西。例如,如果不处理响应对象,则如果多次调用此方法可能会导致超时。