Каков наилучший подход для библиотеки, которая расширяет класс HttpWebRequest? - PullRequest
0 голосов
/ 05 января 2012

Я только начал писать Class Library в C #, который будет реализовывать Gets, Posts (Http-запросы Post и Gets) и oAuth (метод аутентификации с использованием логики токенов).

В настоящее время каждая заявка me иМои коллеги пишут, что у них есть свой собственный класс "HttpMethods", который отвечает за выполнение Gets и Posts.

Вот краткий пример того, что мы получаем:

 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;   
    }

Мой вопрос:Что будет лучшим подходом для нас?Мы хотим иметь нашу собственную библиотеку, которая будет использовать HttpWebRequest object, заканчиваясь чем-то вроде этого:

MyOwnDll.MyOwnClassResponsibleForWebRequests.Get (Parameters)

То же самое для метода Post.

Что мне делать?

Заранее спасибо

1 Ответ

1 голос
/ 05 января 2012

Я думаю, что вы должны следовать 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объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...