Exemplo n.º 1
0
        public void ExecuteAsync(FluentHttpAsyncCallback callback, object state)
        {
            AuthenticateIfRequried();

            var requestUrl = BuildRequestUrl();

            var httpWebHelper = new HttpWebHelper();

            // todo add cookies

            var headers        = GetHeaders().GetHeaderPairs();
            var httpWebRequest = httpWebHelper.CreateHttpWebRequest(requestUrl, GetMethod(), headers, null);

            PrepareHttpWebRequest(httpWebRequest);

            FluentHttpResponse fluentHttpResponse = null;

            httpWebHelper.ResponseReceived +=
                (o, e) =>
            {
                fluentHttpResponse = new FluentHttpResponse(this, e.Response);
                var args = new ResponseHeadersReceivedEventArgs(fluentHttpResponse, e.Exception, state);
                OnResponseHeadersRecived(args);
                e.ResponseSaveStream = fluentHttpResponse.SaveStream;
            };

            httpWebHelper.ExecuteAsync(httpWebRequest, GetBody().Stream,
                                       ar =>
            {
                if (callback != null)
                {
                    var asyncResult           = (HttpWebHelperResult)ar;
                    var fluentHttpAsyncResult = new FluentHttpAsyncResult(this, fluentHttpResponse, state, null, ar.CompletedSynchronously, true, false, asyncResult.Exception, asyncResult.InnerException);
                    callback(fluentHttpAsyncResult);
                }
            }, null);
        }
Exemplo n.º 2
0
 public void ExecuteAsync(FluentHttpAsyncCallback callback)
 {
     ExecuteAsync(callback, null);
 }