private static void ProcessResponse(IRestRequest request, HttpResponse httpResponse, RestRequestAsyncHandle asyncHandle, Action <IRestResponse, RestRequestAsyncHandle> callback) { var restResponse = ConvertToRestResponse(request, httpResponse); callback(restResponse, asyncHandle); }
private RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action <IRestResponse, RestRequestAsyncHandle> callback, string httpMethod, Func <IHttp, Action <HttpResponse>, string, HttpWebRequest> getWebRequest) { AuthenticateIfNeeded(this, request); var http = ConfigureHttp(request); var asyncHandle = new RestRequestAsyncHandle(); Action <HttpResponse> responseCb = r => ProcessResponse(request, r, asyncHandle, callback); if (UseSynchronizationContext && SynchronizationContext.Current != null) { var ctx = SynchronizationContext.Current; var cb = responseCb; responseCb = resp => ctx.Post(s => cb(resp), null); } asyncHandle.WebRequest = getWebRequest(http, responseCb, httpMethod); return(asyncHandle); }
private void DeserializeResponse <T>(IRestRequest request, Action <IRestResponse <T>, RestRequestAsyncHandle> callback, IRestResponse response, RestRequestAsyncHandle asyncHandle) { IRestResponse <T> restResponse; try { restResponse = Deserialize <T>(request, response); } catch (Exception ex) { restResponse = new RestResponse <T> { Request = request, ResponseStatus = ResponseStatus.Error, ErrorMessage = ex.Message, ErrorException = ex }; } callback(restResponse, asyncHandle); }