private WebResponse GetResponse(RestRequest restRequest) { var url = new StringBuilder(); url.AppendFormat("{0}/{1}", BaseUrl, restRequest.Url.TrimStart('/')); switch (restRequest.Method) { case RequestMethod.Get: { var parametersQueryString = restRequest.GetParametersQueryString(); if (parametersQueryString != null) { url.Append(url.ToString().Contains("?") ? "&" : "?"); url.Append(parametersQueryString); } break; } } var requestCreatingParameters = new RequestCreatingParameters { Url = url.ToString() }; RequestCreating(requestCreatingParameters); Logger.DebugFormat("URL: {0}", requestCreatingParameters.Url); var webRequest = (HttpWebRequest)WebRequest.Create(requestCreatingParameters.Url); webRequest.Timeout = restRequest.Timeout ?? _defaultTimeouts[restRequest.Method]; webRequest.Method = restRequest.Method.ToString(); webRequest.CookieContainer = new CookieContainer(); webRequest.Credentials = CredentialCache.DefaultCredentials; switch (restRequest.Method) { case RequestMethod.Post: { restRequest.WriteContent(webRequest); break; } } if (restRequest.Accept != null) { webRequest.Accept = restRequest.Accept; } if (restRequest.ContentType != null) { webRequest.ContentType = restRequest.ContentType; } var requestSendingParameters = new RequestSendingParameters { Request = webRequest }; RequestSending(requestSendingParameters); var response = webRequest.GetResponse(); var responseReceivedParameters = new ResponseReceivedParameters { Response = response }; ResponseReceived(responseReceivedParameters); return(response); }
protected virtual void RequestSending(RequestSendingParameters e) { }