예제 #1
0
        protected virtual void ProcessResponse(
            MvxRestRequest restRequest,
            HttpWebRequest httpRequest,
            Action<MvxRestResponse> successAction,
            Action<Exception> errorAction)
        {
            httpRequest.BeginGetResponse(result =>
                                         TryCatch(() =>
                                             {
                                                 var response = (HttpWebResponse) httpRequest.EndGetResponse(result);

                                                 var code = response.StatusCode;

                                                 var restResponse = new MvxRestResponse
                                                     {
                                                         CookieCollection = response.Cookies,
                                                         Tag = restRequest.Tag,
                                                         StatusCode = code
                                                     };
                                                 successAction(restResponse);
                                             }, errorAction)
                                         , null);
        }
예제 #2
0
        protected virtual async Task<MvxRestResponse> ProcessResponseAsync(MvxRestRequest restRequest, HttpWebRequest httpRequest, CancellationToken ct)
        {
            var task = Task.Factory.FromAsync(
                (cb, o) => ((HttpWebRequest)o).BeginGetResponse(cb, o), 
                res => (HttpWebResponse)((HttpWebRequest)res.AsyncState).EndGetResponse(res), 
                httpRequest,
                hr => hr.Abort(),
                ct);
            var response = await task.ConfigureAwait(false);
            var code = response.StatusCode;

            var restResponse = new MvxRestResponse
            {
                CookieCollection = response.Cookies,
                Tag = restRequest.Tag,
                StatusCode = code
            };
            return restResponse;
        }