Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        /// <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));
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
 public RestResponse(RestRequest request, HttpWebResponse webResponse, RestException responseError)
     : base(request, webResponse, responseError)
 {
 }