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