public RestResponse(RestRequest request, HttpWebResponse webResponse, RestException responseError) { Request = request; WebResponse = webResponse; Error = responseError; if (WebResponse != null) { CharacterSet = WebResponse.CharacterSet; ContentEncoding = WebResponse.ContentEncoding; ContentLength = WebResponse.ContentLength; ContentType = WebResponse.ContentType; Cookies = WebResponse.Cookies; Headers = WebResponse.Headers; IsFromCache = WebResponse.IsFromCache; IsMutuallyAuthenticated = WebResponse.IsMutuallyAuthenticated; LastModified = WebResponse.LastModified; Method = WebResponse.Method; ProtocolVersion = WebResponse.ProtocolVersion; ResponseUri = WebResponse.ResponseUri; Server = WebResponse.Server; StatusCode = WebResponse.StatusCode; StatusDescription = WebResponse.StatusDescription; Body = new RestResponseBody(WebResponse.GetResponseStream(), CharacterSet); if (!IsSuccessStatusCode) { Error = new RestException(StatusCode, StatusDescription, Body); } } }
/// <summary> /// Actual logic for actually making synchronous webrequest and retrieving the response for the server. /// </summary> /// <param name="typeArg"></param> /// <param name="httpMethod"></param> /// <param name="resource"></param> /// <returns>RestResponse</returns> protected virtual RestResponse GetResponseInternal(Type typeArg) { syncWebRequest = CreateHttpWebRequest(); WriteRequestStream(syncWebRequest); HttpWebResponse webResponse = null; RestException responseError = null; try { webResponse = (HttpWebResponse)syncWebRequest.GetResponse(); } catch (Exception ex) { responseError = new RestException(0, "An exception has occured, get more detail in inner-exception", null, ex); } return(CreateResponse(typeArg, webResponse, responseError)); }
/// <summary> /// Factory method for creating the RestResponse /// </summary> /// <param name="typeArg"></param> /// <param name="webResponse"></param> /// <param name="responseError"></param> /// <returns>RestResponse</returns> protected virtual RestResponse CreateResponse(Type typeArg, HttpWebResponse webResponse, RestException responseError) { RestResponse restResponse = null; OnWebResponseReceived(webResponse); if (typeArg != null) { Type restResponseType = typeof(RestResponse <>); Type genericType = restResponseType.MakeGenericType(new Type[] { typeArg }); restResponse = (RestResponse)Activator.CreateInstance(genericType, this, webResponse, responseError); } else { restResponse = new RestResponse(this, webResponse, responseError); } return(restResponse); }
public RestResponse(RestRequest request, HttpWebResponse webResponse, RestException responseError) : base(request, webResponse, responseError) { }