Exemple #1
0
        private HttpResponseMessage TrySending(HttpRequestMessage request, HttpRequestMessageRequestDetails requestDetails, PipelineOptions options)
        {
            var adapter = _adapterFactory.CreateClient(options);
            HttpResponseMessage response;
            try
            {
                response = adapter.SendAsync(request).Result;
            }
            catch (AggregateException exception)
            {
                if (SendError != null)
                {
                    requestDetails = requestDetails ?? new HttpRequestMessageRequestDetails(request);
                    SendError(this, new RequestErrorEventArgs(requestDetails, exception.InnerException));
                }
                if (exception.InnerException is TaskCanceledException)
                {
                    throw new TimeoutException("The request timed out");
                }
                throw exception.InnerException;
            }

            if (Responded != null)
            {
                requestDetails = requestDetails ?? new HttpRequestMessageRequestDetails(request);
                Responded(this, new ResponseEventArgs(requestDetails, new HttpResponseMessageResponseDetails(requestDetails, response)));
            }
            ApplyPipelineToResponse(response, options);
            options.AssertAllRequestResponseOptionsWereUsed();
            return response;
        }
Exemple #2
0
 private HttpRequestMessage CreateRequestMessage(HttpMethod method, string uri, BodyContent body, PipelineOptions options,
     out HttpRequestMessageRequestDetails requestDetails)
 {
     var absoluteUri = AbsoluteUrlOf(uri);
     var request = new HttpRequestMessage();
     ApplyPipelineToRequest(request, options);
     if (body != null)
     {
         var content = new StreamContent(body.AsStream());
         if (body.MediaType != null)
         {
             content.Headers.ContentType = new MediaTypeHeaderValue(body.MediaType);
         }
         request.Content = content;
     }
     request.RequestUri = absoluteUri;
     request.Method = method;
     requestDetails = null;
     if (Sending != null)
     {
         requestDetails = new HttpRequestMessageRequestDetails(request);
         Sending(this, new RequestEventArgs(requestDetails));
     }
     return request;
 }