protected virtual void ProcessRequestThen( MvxRestRequest restRequest, HttpWebRequest httpRequest, Action continueAction, Action<Exception> errorAction) { httpRequest.BeginGetRequestStream(result => TryCatch(() => { using (var stream = httpRequest.EndGetRequestStream(result)) { restRequest.ProcessRequestStream(stream); stream.Flush(); } continueAction(); }, errorAction) , null); }
private async Task AddContentIfNeededAsync(HttpWebRequest httpRequest, MvxRestRequest restRequest, CancellationToken ct) { if (restRequest.NeedsRequestStream) { var task = Task.Factory.FromAsync( (cb, o) => ((HttpWebRequest)o).BeginGetRequestStream(cb, o), res => (Stream)((HttpWebRequest)res.AsyncState).EndGetRequestStream(res), httpRequest, hr => hr.Abort(), ct); using (Stream stream = await task.ConfigureAwait(false)) { restRequest.ProcessRequestStream(stream); stream.Flush(); } } }