557 {
560 return Core(request, completionOption, cts2, disposeCts2, pendingRequestsCts2,
cancellationToken);
562 {
563 bool telemetryStarted =
StartSend(request);
564 bool responseContentTelemetryStarted = false;
565 HttpResponseMessage response = null;
566 try
567 {
568 response = await base.SendAsync(request, cts.
Token).ConfigureAwait(continueOnCapturedContext: false);
571 {
572 if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
573 {
574 HttpTelemetry.Log.ResponseContentStart();
575 responseContentTelemetryStarted = true;
576 }
578 }
579 return response;
580 }
581 catch (Exception e)
582 {
583 HandleFailure(e, telemetryStarted, response, cts, originalCancellationToken, pendingRequestsCts);
584 throw;
585 }
586 finally
587 {
588 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
589 }
590 }
591 }
static void FinishSend(CancellationTokenSource cts, bool disposeCts, bool telemetryStarted, bool responseContentTelemetryStarted)
void HandleFailure(Exception e, bool telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
void CheckRequestBeforeSend(HttpRequestMessage request)
CancellationTokenSource bool CancellationTokenSource PendingRequestsCts PrepareCancellationTokenSource(CancellationToken cancellationToken)
static void ThrowForNullResponse([NotNull] HttpResponseMessage response)
static bool StartSend(HttpRequestMessage request)
int _maxResponseContentBufferSize
static bool ShouldBufferResponse(HttpCompletionOption completionOption, HttpRequestMessage request)