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