Beispiel #1
0
        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);
        }
Beispiel #2
0
 protected virtual void RequestCreating(RequestCreatingParameters e)
 {
 }