Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HttpClient.cs
Go to the documentation of this file.
3using System.IO;
8
9namespace System.Net.Http;
10
12{
13 private static IWebProxy s_defaultProxy;
14
15 private static readonly TimeSpan s_defaultTimeout = TimeSpan.FromSeconds(100.0);
16
17 private static readonly TimeSpan s_maxTimeout = TimeSpan.FromMilliseconds(2147483647.0);
18
20
21 private volatile bool _operationStarted;
22
23 private volatile bool _disposed;
24
26
28
30
32
34
36
38
39 public static IWebProxy DefaultProxy
40 {
41 get
42 {
43 return LazyInitializer.EnsureInitialized(ref s_defaultProxy, () => SystemProxyInfo.Proxy);
44 }
45 set
46 {
47 s_defaultProxy = value ?? throw new ArgumentNullException("value");
48 }
49 }
50
52
54 {
55 get
56 {
58 }
59 set
60 {
63 }
64 }
65
67 {
68 get
69 {
71 }
72 set
73 {
76 }
77 }
78
80 {
81 get
82 {
83 return _baseAddress;
84 }
85 set
86 {
87 if ((object)value != null && !value.IsAbsoluteUri)
88 {
90 }
92 if (System.Net.NetEventSource.Log.IsEnabled())
93 {
95 }
97 }
98 }
99
101 {
102 get
103 {
104 return _timeout;
105 }
106 set
107 {
108 if (value != s_infiniteTimeout && (value <= TimeSpan.Zero || value > s_maxTimeout))
109 {
110 throw new ArgumentOutOfRangeException("value");
111 }
113 _timeout = value;
114 }
115 }
116
118 {
119 get
120 {
122 }
123 set
124 {
125 if (value <= 0)
126 {
127 throw new ArgumentOutOfRangeException("value");
128 }
129 if (value > int.MaxValue)
130 {
132 }
135 }
136 }
137
138 public HttpClient()
139 : this(new HttpClientHandler())
140 {
141 }
142
144 : this(handler, disposeHandler: true)
145 {
146 }
147
148 public HttpClient(HttpMessageHandler handler, bool disposeHandler)
149 : base(handler, disposeHandler)
150 {
152 _maxResponseContentBufferSize = int.MaxValue;
154 }
155
156 public Task<string> GetStringAsync(string? requestUri)
157 {
158 return GetStringAsync(CreateUri(requestUri));
159 }
160
161 public Task<string> GetStringAsync(Uri? requestUri)
162 {
163 return GetStringAsync(requestUri, CancellationToken.None);
164 }
165
167 {
168 return GetStringAsync(CreateUri(requestUri), cancellationToken);
169 }
170
177
179 {
180 bool telemetryStarted = StartSend(request);
181 bool responseContentTelemetryStarted = false;
183 CancellationTokenSource cts = tuple.Item1;
184 bool disposeCts = tuple.Item2;
185 CancellationTokenSource pendingRequestsCts = tuple.Item3;
186 HttpResponseMessage response = null;
187 try
188 {
189 response = await base.SendAsync(request, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
190 ThrowForNullResponse(response);
191 response.EnsureSuccessStatusCode();
192 HttpContent c = response.Content;
193 if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
194 {
195 HttpTelemetry.Log.ResponseContentStart();
196 responseContentTelemetryStarted = true;
197 }
199 Stream stream2 = stream;
200 if (stream2 == null)
201 {
202 stream2 = await c.ReadAsStreamAsync(cts.Token).ConfigureAwait(continueOnCapturedContext: false);
203 }
204 using Stream responseStream = stream2;
206 _ = 2;
207 try
208 {
209 await responseStream.CopyToAsync(buffer, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
210 }
212 {
214 }
215 if (buffer.Length > 0)
216 {
217 return HttpContent.ReadBufferAsString(buffer.GetBuffer(), c.Headers);
218 }
219 return string.Empty;
220 }
221 catch (Exception e2)
222 {
223 HandleFailure(e2, telemetryStarted, response, cts, cancellationToken, pendingRequestsCts);
224 throw;
225 }
226 finally
227 {
228 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
229 }
230 }
231
232 public Task<byte[]> GetByteArrayAsync(string? requestUri)
233 {
234 return GetByteArrayAsync(CreateUri(requestUri));
235 }
236
238 {
239 return GetByteArrayAsync(requestUri, CancellationToken.None);
240 }
241
243 {
244 return GetByteArrayAsync(CreateUri(requestUri), cancellationToken);
245 }
246
253
255 {
256 bool telemetryStarted = StartSend(request);
257 bool responseContentTelemetryStarted = false;
259 CancellationTokenSource cts = tuple.Item1;
260 bool disposeCts = tuple.Item2;
261 CancellationTokenSource pendingRequestsCts = tuple.Item3;
262 HttpResponseMessage response = null;
263 try
264 {
265 response = await base.SendAsync(request, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
266 ThrowForNullResponse(response);
267 response.EnsureSuccessStatusCode();
268 HttpContent content = response.Content;
269 if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
270 {
271 HttpTelemetry.Log.ResponseContentStart();
272 responseContentTelemetryStarted = true;
273 }
274 long? contentLength = content.Headers.ContentLength;
275 using Stream buffer = (contentLength.HasValue ? ((Stream)new HttpContent.LimitMemoryStream(_maxResponseContentBufferSize, (int)contentLength.GetValueOrDefault())) : ((Stream)new HttpContent.LimitArrayPoolWriteStream(_maxResponseContentBufferSize)));
276 Stream stream = content.TryReadAsStream();
277 Stream stream2 = stream;
278 if (stream2 == null)
279 {
280 stream2 = await content.ReadAsStreamAsync(cts.Token).ConfigureAwait(continueOnCapturedContext: false);
281 }
282 using Stream responseStream = stream2;
283 _ = 2;
284 try
285 {
286 await responseStream.CopyToAsync(buffer, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
287 }
289 {
291 }
292 return (buffer.Length == 0L) ? Array.Empty<byte>() : ((buffer is HttpContent.LimitMemoryStream limitMemoryStream) ? limitMemoryStream.GetSizedBuffer() : ((HttpContent.LimitArrayPoolWriteStream)buffer).ToArray());
293 }
294 catch (Exception e2)
295 {
296 HandleFailure(e2, telemetryStarted, response, cts, cancellationToken, pendingRequestsCts);
297 throw;
298 }
299 finally
300 {
301 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted);
302 }
303 }
304
305 public Task<Stream> GetStreamAsync(string? requestUri)
306 {
307 return GetStreamAsync(CreateUri(requestUri));
308 }
309
311 {
312 return GetStreamAsync(CreateUri(requestUri), cancellationToken);
313 }
314
315 public Task<Stream> GetStreamAsync(Uri? requestUri)
316 {
317 return GetStreamAsync(requestUri, CancellationToken.None);
318 }
319
326
328 {
329 bool telemetryStarted = StartSend(request);
331 CancellationTokenSource cts = tuple.Item1;
332 bool disposeCts = tuple.Item2;
333 CancellationTokenSource pendingRequestsCts = tuple.Item3;
334 HttpResponseMessage response = null;
335 try
336 {
337 response = await base.SendAsync(request, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
338 ThrowForNullResponse(response);
339 response.EnsureSuccessStatusCode();
340 HttpContent content = response.Content;
341 Stream stream = content.TryReadAsStream();
342 Stream stream2 = stream;
343 if (stream2 == null)
344 {
345 stream2 = await content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
346 }
347 return stream2;
348 }
349 catch (Exception e)
350 {
351 HandleFailure(e, telemetryStarted, response, cts, cancellationToken, pendingRequestsCts);
352 throw;
353 }
354 finally
355 {
356 FinishSend(cts, disposeCts, telemetryStarted, responseContentTelemetryStarted: false);
357 }
358 }
359
360 public Task<HttpResponseMessage> GetAsync(string? requestUri)
361 {
362 return GetAsync(CreateUri(requestUri));
363 }
364
366 {
367 return GetAsync(requestUri, HttpCompletionOption.ResponseContentRead);
368 }
369
370 public Task<HttpResponseMessage> GetAsync(string? requestUri, HttpCompletionOption completionOption)
371 {
372 return GetAsync(CreateUri(requestUri), completionOption);
373 }
374
375 public Task<HttpResponseMessage> GetAsync(Uri? requestUri, HttpCompletionOption completionOption)
376 {
377 return GetAsync(requestUri, completionOption, CancellationToken.None);
378 }
379
381 {
382 return GetAsync(CreateUri(requestUri), cancellationToken);
383 }
384
386 {
387 return GetAsync(requestUri, HttpCompletionOption.ResponseContentRead, cancellationToken);
388 }
389
391 {
392 return GetAsync(CreateUri(requestUri), completionOption, cancellationToken);
393 }
394
396 {
397 return SendAsync(CreateRequestMessage(HttpMethod.Get, requestUri), completionOption, cancellationToken);
398 }
399
400 public Task<HttpResponseMessage> PostAsync(string? requestUri, HttpContent? content)
401 {
402 return PostAsync(CreateUri(requestUri), content);
403 }
404
406 {
407 return PostAsync(requestUri, content, CancellationToken.None);
408 }
409
411 {
412 return PostAsync(CreateUri(requestUri), content, cancellationToken);
413 }
414
416 {
417 HttpRequestMessage httpRequestMessage = CreateRequestMessage(HttpMethod.Post, requestUri);
418 httpRequestMessage.Content = content;
419 return SendAsync(httpRequestMessage, cancellationToken);
420 }
421
422 public Task<HttpResponseMessage> PutAsync(string? requestUri, HttpContent? content)
423 {
424 return PutAsync(CreateUri(requestUri), content);
425 }
426
427 public Task<HttpResponseMessage> PutAsync(Uri? requestUri, HttpContent? content)
428 {
429 return PutAsync(requestUri, content, CancellationToken.None);
430 }
431
433 {
434 return PutAsync(CreateUri(requestUri), content, cancellationToken);
435 }
436
438 {
439 HttpRequestMessage httpRequestMessage = CreateRequestMessage(HttpMethod.Put, requestUri);
440 httpRequestMessage.Content = content;
441 return SendAsync(httpRequestMessage, cancellationToken);
442 }
443
444 public Task<HttpResponseMessage> PatchAsync(string? requestUri, HttpContent? content)
445 {
446 return PatchAsync(CreateUri(requestUri), content);
447 }
448
450 {
451 return PatchAsync(requestUri, content, CancellationToken.None);
452 }
453
455 {
456 return PatchAsync(CreateUri(requestUri), content, cancellationToken);
457 }
458
460 {
461 HttpRequestMessage httpRequestMessage = CreateRequestMessage(HttpMethod.Patch, requestUri);
462 httpRequestMessage.Content = content;
463 return SendAsync(httpRequestMessage, cancellationToken);
464 }
465
466 public Task<HttpResponseMessage> DeleteAsync(string? requestUri)
467 {
468 return DeleteAsync(CreateUri(requestUri));
469 }
470
472 {
473 return DeleteAsync(requestUri, CancellationToken.None);
474 }
475
477 {
478 return DeleteAsync(CreateUri(requestUri), cancellationToken);
479 }
480
485
486 [UnsupportedOSPlatform("browser")]
488 {
489 return Send(request, HttpCompletionOption.ResponseContentRead, default(CancellationToken));
490 }
491
492 [UnsupportedOSPlatform("browser")]
494 {
495 return Send(request, completionOption, default(CancellationToken));
496 }
497
498 [UnsupportedOSPlatform("browser")]
500 {
501 return Send(request, HttpCompletionOption.ResponseContentRead, cancellationToken);
502 }
503
504 [UnsupportedOSPlatform("browser")]
506 {
507 CheckRequestBeforeSend(request);
509 CancellationTokenSource item = tuple.TokenSource;
510 bool item2 = tuple.DisposeTokenSource;
511 CancellationTokenSource item3 = tuple.PendingRequestsCts;
512 bool flag = StartSend(request);
513 bool responseContentTelemetryStarted = false;
514 HttpResponseMessage httpResponseMessage = null;
515 try
516 {
517 httpResponseMessage = base.Send(request, item.Token);
518 ThrowForNullResponse(httpResponseMessage);
519 if (ShouldBufferResponse(completionOption, request))
520 {
521 if (HttpTelemetry.Log.IsEnabled() && flag)
522 {
523 HttpTelemetry.Log.ResponseContentStart();
524 responseContentTelemetryStarted = true;
525 }
526 httpResponseMessage.Content.LoadIntoBuffer(_maxResponseContentBufferSize, item.Token);
527 }
528 return httpResponseMessage;
529 }
530 catch (Exception e)
531 {
532 HandleFailure(e, flag, httpResponseMessage, item, cancellationToken, item3);
533 throw;
534 }
535 finally
536 {
537 FinishSend(item, item2, flag, responseContentTelemetryStarted);
538 }
539 }
540
542 {
543 return SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None);
544 }
545
550
552 {
553 return SendAsync(request, completionOption, CancellationToken.None);
554 }
555
557 {
558 CheckRequestBeforeSend(request);
559 var (cts2, disposeCts2, pendingRequestsCts2) = PrepareCancellationTokenSource(cancellationToken);
560 return Core(request, completionOption, cts2, disposeCts2, pendingRequestsCts2, cancellationToken);
561 async Task<HttpResponseMessage> Core(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, bool disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
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);
569 ThrowForNullResponse(response);
570 if (ShouldBufferResponse(completionOption, request))
571 {
572 if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
573 {
574 HttpTelemetry.Log.ResponseContentStart();
575 responseContentTelemetryStarted = true;
576 }
577 await response.Content.LoadIntoBufferAsync(_maxResponseContentBufferSize, cts.Token).ConfigureAwait(continueOnCapturedContext: false);
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 }
592
594 {
595 if (request == null)
596 {
598 }
600 CheckRequestMessage(request);
602 PrepareRequestMessage(request);
603 }
604
605 private static void ThrowForNullResponse([NotNull] HttpResponseMessage response)
606 {
607 if (response == null)
608 {
610 }
611 }
612
613 private static bool ShouldBufferResponse(HttpCompletionOption completionOption, HttpRequestMessage request)
614 {
615 if (completionOption == HttpCompletionOption.ResponseContentRead)
616 {
617 return !string.Equals(request.Method.Method, "HEAD", StringComparison.OrdinalIgnoreCase);
618 }
619 return false;
620 }
621
623 {
624 HttpMessageInvoker.LogRequestFailed(telemetryStarted);
625 response?.Dispose();
626 Exception ex = null;
627 if (e is OperationCanceledException ex2)
628 {
629 if (cancellationToken.IsCancellationRequested)
630 {
631 if (ex2.CancellationToken != cancellationToken)
632 {
633 e = (ex = new TaskCanceledException(ex2.Message, ex2.InnerException, cancellationToken));
634 }
635 }
636 else if (!pendingRequestsCts.IsCancellationRequested)
637 {
639 }
640 }
642 {
643 e = (ex = new OperationCanceledException(cancellationToken.IsCancellationRequested ? cancellationToken : cts.Token));
644 }
645 if (System.Net.NetEventSource.Log.IsEnabled())
646 {
647 System.Net.NetEventSource.Error(this, e, "HandleFailure");
648 }
649 if (ex != null)
650 {
651 throw ex;
652 }
653 }
654
655 private static bool StartSend(HttpRequestMessage request)
656 {
657 if (HttpTelemetry.Log.IsEnabled())
658 {
659 HttpTelemetry.Log.RequestStart(request);
660 return true;
661 }
662 return false;
663 }
664
665 private static void FinishSend(CancellationTokenSource cts, bool disposeCts, bool telemetryStarted, bool responseContentTelemetryStarted)
666 {
667 if (HttpTelemetry.Log.IsEnabled() && telemetryStarted)
668 {
669 if (responseContentTelemetryStarted)
670 {
671 HttpTelemetry.Log.ResponseContentStop();
672 }
673 HttpTelemetry.Log.RequestStop();
674 }
675 if (disposeCts)
676 {
677 cts.Dispose();
678 }
679 }
680
682 {
685 cancellationTokenSource.Cancel();
686 cancellationTokenSource.Dispose();
687 }
688
689 protected override void Dispose(bool disposing)
690 {
691 if (disposing && !_disposed)
692 {
693 _disposed = true;
696 }
697 base.Dispose(disposing);
698 }
699
700 private void SetOperationStarted()
701 {
703 {
704 _operationStarted = true;
705 }
706 }
707
709 {
712 {
714 }
715 }
716
717 private void CheckDisposed()
718 {
719 if (_disposed)
720 {
721 throw new ObjectDisposedException(GetType().ToString());
722 }
723 }
724
725 private static void CheckRequestMessage(HttpRequestMessage request)
726 {
727 if (!request.MarkAsSent())
728 {
730 }
731 }
732
734 {
735 Uri uri = null;
736 if (request.RequestUri == null && _baseAddress == null)
737 {
739 }
740 if (request.RequestUri == null)
741 {
742 uri = _baseAddress;
743 }
744 else if (!request.RequestUri.IsAbsoluteUri)
745 {
746 if (_baseAddress == null)
747 {
749 }
750 uri = new Uri(_baseAddress, request.RequestUri);
751 }
752 if (uri != null)
753 {
754 request.RequestUri = uri;
755 }
756 if (_defaultRequestHeaders != null)
757 {
759 }
760 }
761
763 {
764 CancellationTokenSource pendingRequestsCts = _pendingRequestsCts;
765 bool flag = _timeout != s_infiniteTimeout;
766 if (flag || cancellationToken.CanBeCanceled)
767 {
769 if (flag)
770 {
771 cancellationTokenSource.CancelAfter(_timeout);
772 }
773 return (TokenSource: cancellationTokenSource, DisposeTokenSource: true, PendingRequestsCts: pendingRequestsCts);
774 }
775 return (TokenSource: pendingRequestsCts, DisposeTokenSource: false, PendingRequestsCts: pendingRequestsCts);
776 }
777
778 private Uri CreateUri(string uri)
779 {
780 if (!string.IsNullOrEmpty(uri))
781 {
782 return new Uri(uri, UriKind.RelativeOrAbsolute);
783 }
784 return null;
785 }
786
788 {
789 return new HttpRequestMessage(method, uri)
790 {
792 VersionPolicy = _defaultVersionPolicy
793 };
794 }
795}
virtual string Message
Definition Exception.cs:100
static CultureInfo InvariantCulture
Task CopyToAsync(Stream destination)
Definition Stream.cs:571
override void AddHeaders(HttpHeaders sourceHeaders)
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
Definition HttpClient.cs:25
HttpVersionPolicy _defaultVersionPolicy
Definition HttpClient.cs:31
static IWebProxy s_defaultProxy
Definition HttpClient.cs:13
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
Definition HttpClient.cs:19
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
Definition HttpClient.cs:51
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)
Task< Stream > GetStreamAsync(Uri? requestUri, CancellationToken cancellationToken)
override Task< HttpResponseMessage > SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
Task< HttpResponseMessage > PostAsync(Uri? requestUri, HttpContent? content, CancellationToken cancellationToken)
CancellationTokenSource bool DisposeTokenSource
Task< HttpResponseMessage > PutAsync(string? requestUri, HttpContent? content)
Task< HttpResponseMessage > PostAsync(string? requestUri, HttpContent? content)
Task< HttpResponseMessage > PutAsync(Uri? requestUri, HttpContent? content, CancellationToken cancellationToken)
volatile bool _operationStarted
Definition HttpClient.cs:21
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
Definition HttpClient.cs:67
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)
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
Definition HttpClient.cs:15
void PrepareRequestMessage(HttpRequestMessage request)
HttpRequestHeaders _defaultRequestHeaders
Definition HttpClient.cs:27
Task< HttpResponseMessage > PatchAsync(string? requestUri, HttpContent? content, CancellationToken cancellationToken)
Task< byte[]> GetByteArrayAsync(Uri? requestUri)
static bool StartSend(HttpRequestMessage request)
static readonly TimeSpan s_maxTimeout
Definition HttpClient.cs:17
static IWebProxy DefaultProxy
Definition HttpClient.cs:40
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< 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)
static HttpMethod Patch
Definition HttpMethod.cs:49
static HttpMethod Delete
Definition HttpMethod.cs:41
static HttpMethod Get
Definition HttpMethod.cs:35
static HttpMethod Post
Definition HttpMethod.cs:39
static HttpMethod Put
Definition HttpMethod.cs:37
static HttpVersionPolicy DefaultVersionPolicy
virtual void Dispose(bool disposing)
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
Definition SR.cs:68
static string net_http_request_timedout
Definition SR.cs:190
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_http_client_invalid_requesturi
Definition SR.cs:62
static string net_http_client_request_already_sent
Definition SR.cs:54
static string net_http_handler_norequest
Definition SR.cs:70
static string net_http_content_buffersize_limit
Definition SR.cs:84
static string net_http_operation_started
Definition SR.cs:56
static string net_http_client_absolute_baseaddress_required
Definition SR.cs:60
Definition SR.cs:7
static CancellationTokenSource CreateLinkedTokenSource(CancellationToken token1, CancellationToken token2)
static int Exchange(ref int location1, int value)
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
static readonly TimeSpan InfiniteTimeSpan
Definition Timeout.cs:5
bool IsAbsoluteUri
Definition Uri.cs:572
UriKind
Definition UriKind.cs:4
double TotalSeconds
Definition TimeSpan.cs:64
static TimeSpan FromMilliseconds(double value)
Definition TimeSpan.cs:228
static TimeSpan FromSeconds(double value)
Definition TimeSpan.cs:247