我刚刚开始在C#中编写Class Library
,它将实现获取,帖子(Post和Gets的Http请求)和oAuth(使用令牌逻辑的身份验证方法)。
目前,我和我的同事所写的每个应用程序都有自己的“HttpMethods”类,负责执行Get和Posts。
以下是我们拥有的Get的快速示例:
public string Get(string url, string refererPage = "")
{
string response = null;
try
{
// Web request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = m_timeout;
request.Method = "GET";
request.Referer = refererPage;
request.CookieContainer = m_CookieJar;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.ServicePoint.ConnectionLimit = Consts.CONNECTIONS_LIMIT;
request.UserAgent = Consts.URI_USER_AGENT;
request.AllowAutoRedirect = true;
request.Host = Consts.API_HOST;
// Web response
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
response = new StreamReader(resp.GetResponseStream()).ReadToEnd();
}
catch (Exception ex)
{
LogWriter.Error(ex);
}
return response;
}
我的问题是:哪个是我们添加的最佳方法?
我们希望拥有自己的lib,它将使用HttpWebRequest object
,结尾就像这样:
MyOwnDll.MyOwnClassResponsibleForWebRequests.Get (Parameters)
后期方法相同。
我该怎么办?
提前致谢
答案 0 :(得分:1)
我认为你应该关注Factory Pattern。
这样的事情:
public class MyOwnClassResponsibleForWebRequests
{
private MyOwnClassResponsibleForWebRequests(){}
public HttpRequest Get(Params)
{
HttpRequestobj hr = new HttpRequest();
.....your code
return hr; //or make request and return result
}
}
或者你可以自己发出请求并返回结果而不是HttpRequest对象。