protected SendAsync ( |
||
request | ||
cancel | ||
return | Task |
protected internal override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancel)
{
if (request == null)
{
throw new ArgumentNullException(nameof(request));
}
cancel.ThrowIfCancellationRequested();
Guid loggingRequestId = s_diagnosticListener.LogHttpRequest(request);
RTHttpRequestMessage rtRequest = await ConvertRequestAsync(request).ConfigureAwait(false);
RTHttpResponseMessage rtResponse = await _next.SendRequestAsync(rtRequest).AsTask(cancel).ConfigureAwait(false);
// Update in case of redirects
request.RequestUri = rtRequest.RequestUri;
HttpResponseMessage response = ConvertResponse(rtResponse);
response.RequestMessage = request;
s_diagnosticListener.LogHttpResponse(response, loggingRequestId);
return response;
}
protected internal override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { CheckDisposed(); SetOperationStarted(); HttpResponseMessage response; try { await ConfigureRequest(request).ConfigureAwait(false); Task <HttpResponseMessage> responseTask = DiagnosticsHandler.IsEnabled() ? _diagnosticsPipeline.SendAsync(request, cancellationToken) : _handlerToFilter.SendAsync(request, cancellationToken); response = await responseTask.ConfigureAwait(false); } catch (OperationCanceledException) { throw; } catch (Exception ex) { // Convert back to the expected exception type throw new HttpRequestException(SR.net_http_client_execution_error, ex); } ProcessResponse(response); return(response); }