什么是扩展HttpWebRequest类的Lib的最佳方法?

时间:2012-01-05 17:16:34

标签: c# dll httpwebrequest

我刚刚开始在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)

后期方法相同。

我该怎么办?

提前致谢

1 个答案:

答案 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对象。