Exemplo n.º 1
0
        /// <summary>
        /// Sends RESTRequest to server represented by RESTClient and returns the RESTResponse received
        /// </summary>
        public RESTResponse Execute(RESTRequest request)
        {
            var querystr = request.QueryString;
            var url      = (object.ReferenceEquals(querystr, null)) ? this.BaseUrl + "/" + request.PathInfo : this.BaseUrl + "/" + request.PathInfo + "?" + querystr;
            var client   = CreateRequest(url);

            var stopwatch = new Stopwatch();

            client.Timeout = request.Timeout;

            client.CookieContainer = this.Cookies;
            client.Method          = request.Method.ToString();
            client.Headers         = request.Headers;

            client.ContentType = request.ContentType.ToValue();

            if (!Object.ReferenceEquals(request.Payload, null))
            {
                var content = request.Encoding.GetBytes(request.Payload);
                client.ContentLength = content.Length;
                client.GetRequestStream().Write(content, 0, content.Length);
                client.GetRequestStream().Close();
            }
            else
            {
                client.ContentLength = 0;
            }

            HttpWebResponse    httpresponse;
            string             error       = "";
            WebExceptionStatus errorStatus = WebExceptionStatus.Success;

            stopwatch.Start();
            try
            {
                httpresponse = (HttpWebResponse)client.GetResponse();
            }
            catch (WebException e)
            {
                EventLogger.Log(e);

                httpresponse = (HttpWebResponse)e.Response;
                error        = e.Message;
                errorStatus  = e.Status;
            }
            stopwatch.Stop();
            request.Reset();

            var response = new RESTResponse(httpresponse, stopwatch.ElapsedMilliseconds, error, errorStatus);

            if (response.Cookies != null)
            {
                this.Cookies.Add(response.Cookies);
            }

            return(response);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Sends RESTRequest to server represented by RESTClient and returns the RESTResponse received
        /// </summary>
        public RESTResponse Execute(RESTRequest request)
        {
            var querystr = request.QueryString;
            var url = (object.ReferenceEquals(querystr, null)) ? this.BaseUrl + "/" + request.PathInfo : this.BaseUrl + "/" + request.PathInfo + "?" + querystr;
            var client = CreateRequest(url);

            var stopwatch = new Stopwatch();
            client.Timeout = request.Timeout;

            client.CookieContainer = this.Cookies;
            client.Method = request.Method.ToString();
            client.Headers = request.Headers;

            client.ContentType = request.ContentType.ToValue();

            if (!Object.ReferenceEquals(request.Payload, null))
            {
                var content = request.Encoding.GetBytes(request.Payload);
                client.ContentLength = content.Length;
                client.GetRequestStream().Write(content, 0, content.Length);
                client.GetRequestStream().Close();
            }
            else
            {
                client.ContentLength = 0;
            }

            HttpWebResponse httpresponse;
            string error = "";
            WebExceptionStatus errorStatus = WebExceptionStatus.Success;

            stopwatch.Start();
            try
            {
                httpresponse = (HttpWebResponse)client.GetResponse();
            }
            catch (WebException e)
            {
                EventLogger.Log(e);

                httpresponse = (HttpWebResponse)e.Response;
                error = e.Message;
                errorStatus = e.Status;
            }
            stopwatch.Stop();
            request.Reset();

            var response = new RESTResponse(httpresponse, stopwatch.ElapsedMilliseconds, error, errorStatus);
            //this.Cookies.Add(response.Cookies);

            return response;
        }