87 if ((
object)
value !=
null && !
value.IsAbsoluteUri)
129 if (
value >
int.MaxValue)
144 : this(handler, disposeHandler: true)
149 : base(handler, disposeHandler)
180 bool telemetryStarted =
StartSend(request);
181 bool responseContentTelemetryStarted =
false;
184 bool disposeCts = tuple.Item2;
189 response = await base.SendAsync(request, cts.
Token).ConfigureAwait(continueOnCapturedContext:
false);
196 responseContentTelemetryStarted =
true;
204 using Stream responseStream = stream2;
228 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
256 bool telemetryStarted =
StartSend(request);
257 bool responseContentTelemetryStarted =
false;
260 bool disposeCts = tuple.Item2;
265 response = await base.SendAsync(request, cts.
Token).ConfigureAwait(continueOnCapturedContext:
false);
272 responseContentTelemetryStarted =
true;
282 using Stream responseStream = stream2;
301 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
329 bool telemetryStarted =
StartSend(request);
332 bool disposeCts = tuple.Item2;
337 response = await base.SendAsync(request, cts.
Token).ConfigureAwait(continueOnCapturedContext:
false);
356 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted:
false);
418 httpRequestMessage.Content = content;
440 httpRequestMessage.Content = content;
462 httpRequestMessage.Content = content;
486 [UnsupportedOSPlatform(
"browser")]
492 [UnsupportedOSPlatform(
"browser")]
498 [UnsupportedOSPlatform(
"browser")]
504 [UnsupportedOSPlatform(
"browser")]
510 bool item2 = tuple.DisposeTokenSource;
513 bool responseContentTelemetryStarted =
false;
517 httpResponseMessage = base.Send(request,
item.Token);
524 responseContentTelemetryStarted =
true;
528 return httpResponseMessage;
560 return Core(request, completionOption, cts2, disposeCts2, pendingRequestsCts2,
cancellationToken);
563 bool telemetryStarted =
StartSend(request);
564 bool responseContentTelemetryStarted =
false;
568 response = await base.SendAsync(request, cts.
Token).ConfigureAwait(continueOnCapturedContext:
false);
575 responseContentTelemetryStarted =
true;
583 HandleFailure(e, telemetryStarted, response, cts, originalCancellationToken, pendingRequestsCts);
588 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
607 if (response ==
null)
669 if (responseContentTelemetryStarted)
685 cancellationTokenSource.
Cancel();
686 cancellationTokenSource.
Dispose();
689 protected override void Dispose(
bool disposing)
697 base.Dispose(disposing);
754 request.RequestUri = uri;
780 if (!
string.IsNullOrEmpty(uri))
782 return new Uri(uri,
UriKind.RelativeOrAbsolute);
static CultureInfo InvariantCulture
Task CopyToAsync(Stream destination)
Task< Stream > GetStreamAsync(string? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > DeleteAsync(Uri? requestUri, CancellationToken cancellationToken)
Uri CreateUri(string uri)
Task< Stream > GetStreamAsync(string? requestUri)
async Task< Stream > GetStreamAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
Task< HttpResponseMessage > PostAsync(string? requestUri, HttpContent? content, CancellationToken cancellationToken)
Task< HttpResponseMessage > GetAsync(string? requestUri, HttpCompletionOption completionOption)
CancellationTokenSource _pendingRequestsCts
HttpVersionPolicy _defaultVersionPolicy
static IWebProxy s_defaultProxy
Task< HttpResponseMessage > PutAsync(string? requestUri, HttpContent? content, CancellationToken cancellationToken)
Task< HttpResponseMessage > GetAsync(string? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > PutAsync(Uri? requestUri, HttpContent? content)
static void FinishSend(CancellationTokenSource cts, bool disposeCts, bool telemetryStarted, bool responseContentTelemetryStarted)
Task< string > GetStringAsync(Uri? requestUri)
Task< HttpResponseMessage > GetAsync(Uri? requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken)
static readonly TimeSpan s_infiniteTimeout
HttpResponseMessage Send(HttpRequestMessage request)
Task< HttpResponseMessage > GetAsync(Uri? requestUri, HttpCompletionOption completionOption)
async Task< string > GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption completionOption)
override void Dispose(bool disposing)
HttpClient(HttpMessageHandler handler, bool disposeHandler)
Task< byte[]> GetByteArrayAsync(string? requestUri)
Task< HttpResponseMessage > DeleteAsync(Uri? requestUri)
Task< HttpResponseMessage > DeleteAsync(string? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > SendAsync(HttpRequestMessage request)
Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
Task< HttpResponseMessage > GetAsync(string? requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken)
HttpRequestHeaders DefaultRequestHeaders
Task< string > GetStringAsync(string? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption)
Task< byte[]> GetByteArrayAsync(string? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > PatchAsync(Uri? requestUri, HttpContent? content, CancellationToken cancellationToken)
void HandleFailure(Exception e, bool telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
void CheckDisposedOrStarted()
Task< Stream > GetStreamAsync(Uri? requestUri, CancellationToken cancellationToken)
override Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
Task< HttpResponseMessage > PostAsync(Uri? requestUri, HttpContent? content, CancellationToken cancellationToken)
void CancelPendingRequests()
Version _defaultRequestVersion
CancellationTokenSource bool DisposeTokenSource
Task< HttpResponseMessage > PutAsync(string? requestUri, HttpContent? content)
Task< HttpResponseMessage > PostAsync(string? requestUri, HttpContent? content)
void SetOperationStarted()
Task< HttpResponseMessage > PutAsync(Uri? requestUri, HttpContent? content, CancellationToken cancellationToken)
volatile bool _operationStarted
Task< HttpResponseMessage > PatchAsync(Uri? requestUri, HttpContent? content)
Task< HttpResponseMessage > PatchAsync(string? requestUri, HttpContent? content)
Task< HttpResponseMessage > GetAsync(Uri? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > PostAsync(Uri? requestUri, HttpContent? content)
void CheckRequestBeforeSend(HttpRequestMessage request)
HttpVersionPolicy DefaultVersionPolicy
HttpRequestMessage CreateRequestMessage(HttpMethod method, Uri uri)
Task< HttpResponseMessage > DeleteAsync(string? requestUri)
HttpClient(HttpMessageHandler handler)
CancellationTokenSource TokenSource
Task< byte[]> GetByteArrayAsync(Uri? requestUri, CancellationToken cancellationToken)
Task< HttpResponseMessage > GetAsync(string? requestUri)
long MaxResponseContentBufferSize
CancellationTokenSource bool CancellationTokenSource PendingRequestsCts PrepareCancellationTokenSource(CancellationToken cancellationToken)
static void ThrowForNullResponse([NotNull] HttpResponseMessage response)
Task< string > GetStringAsync(Uri? requestUri, CancellationToken cancellationToken)
Task< Stream > GetStreamAsync(Uri? requestUri)
Task< string > GetStringAsync(string? requestUri)
async Task< byte[]> GetByteArrayAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
static void CheckRequestMessage(HttpRequestMessage request)
Task< HttpResponseMessage > GetAsync(Uri? requestUri)
static readonly TimeSpan s_defaultTimeout
void PrepareRequestMessage(HttpRequestMessage request)
HttpRequestHeaders _defaultRequestHeaders
Task< HttpResponseMessage > PatchAsync(string? requestUri, HttpContent? content, CancellationToken cancellationToken)
Task< byte[]> GetByteArrayAsync(Uri? requestUri)
static bool StartSend(HttpRequestMessage request)
static readonly TimeSpan s_maxTimeout
Version DefaultRequestVersion
static IWebProxy DefaultProxy
int _maxResponseContentBufferSize
override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken)
HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
static bool ShouldBufferResponse(HttpCompletionOption completionOption, HttpRequestMessage request)
static Exception WrapStreamCopyException(Exception e)
Task LoadIntoBufferAsync()
Task< Stream > ReadAsStreamAsync()
static bool StreamCopyExceptionNeedsWrapping(Exception e)
void LoadIntoBuffer(long maxBufferSize, CancellationToken cancellationToken)
static string ReadBufferAsString(ArraySegment< byte > buffer, HttpContentHeaders headers)
HttpContentHeaders Headers
static bool LogRequestFailed(bool telemetryStarted)
HttpRequestHeaders Headers
static HttpVersionPolicy DefaultVersionPolicy
static Version DefaultRequestVersion
virtual void Dispose(bool disposing)
HttpResponseMessage EnsureSuccessStatusCode()
static readonly HttpTelemetry Log
static readonly System.Net.NetEventSource Log
static void Error(object thisOrContextObject, FormattableString formattableString, [CallerMemberName] string memberName=null)
static void UriBaseAddress(object obj, Uri baseAddress)
static string net_http_handler_noresponse
static string net_http_request_timedout
static string Format(string resourceFormat, object p1)
static string net_http_client_invalid_requesturi
static string net_http_client_request_already_sent
static string net_http_handler_norequest
static string net_http_content_buffersize_limit
static string net_http_operation_started
static string net_http_client_absolute_baseaddress_required
static CancellationTokenSource CreateLinkedTokenSource(CancellationToken token1, CancellationToken token2)
void CancelAfter(TimeSpan delay)
bool IsCancellationRequested
static int Exchange(ref int location1, int value)
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
static readonly TimeSpan InfiniteTimeSpan
static CancellationToken None
static TimeSpan FromMilliseconds(double value)
static TimeSpan FromSeconds(double value)