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