# System.Net.Http ``` diff namespace System.Net.Http { public class ByteArrayContent : HttpContent { + protected override Stream CreateContentReadStream(CancellationToken cancellationToken); + protected override void SerializeToStream(Stream stream, TransportContext context, CancellationToken cancellationToken); + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } public abstract class DelegatingHandler : HttpMessageHandler { + protected internal override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public class FormUrlEncodedContent : ByteArrayContent { + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } + public delegate Encoding HeaderEncodingSelector(string headerName, TContext context); public class HttpClient : HttpMessageInvoker { + public static IWebProxy DefaultProxy { get; set; } + public Version DefaultRequestVersion { get; set; } + public HttpVersionPolicy DefaultVersionPolicy { get; set; } + public Task GetByteArrayAsync(string requestUri, CancellationToken cancellationToken); + public Task GetByteArrayAsync(Uri requestUri, CancellationToken cancellationToken); + public Task GetStreamAsync(string requestUri, CancellationToken cancellationToken); + public Task GetStreamAsync(Uri requestUri, CancellationToken cancellationToken); + public Task GetStringAsync(string requestUri, CancellationToken cancellationToken); + public Task GetStringAsync(Uri requestUri, CancellationToken cancellationToken); + public HttpResponseMessage Send(HttpRequestMessage request); + public HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption completionOption); + public HttpResponseMessage Send(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken); + public override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public class HttpClientHandler : HttpMessageHandler { + protected internal override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public abstract class HttpContent : IDisposable { + public void CopyTo(Stream stream, TransportContext context, CancellationToken cancellationToken); + public Task CopyToAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); + public Task CopyToAsync(Stream stream, CancellationToken cancellationToken); + protected virtual Stream CreateContentReadStream(CancellationToken cancellationToken); + protected virtual Task CreateContentReadStreamAsync(CancellationToken cancellationToken); + public Task ReadAsByteArrayAsync(CancellationToken cancellationToken); + public Stream ReadAsStream(); + public Stream ReadAsStream(CancellationToken cancellationToken); + public Task ReadAsStreamAsync(CancellationToken cancellationToken); + public Task ReadAsStringAsync(CancellationToken cancellationToken); + protected virtual void SerializeToStream(Stream stream, TransportContext context, CancellationToken cancellationToken); + protected virtual Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } + public enum HttpKeepAlivePingPolicy { + Always = 1, + WithActiveRequests = 0, + } public abstract class HttpMessageHandler : IDisposable { + protected internal virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public class HttpMessageInvoker : IDisposable { + public virtual HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public class HttpRequestException : Exception { + public HttpRequestException(string message, Exception inner, HttpStatusCode? statusCode); + public HttpStatusCode? StatusCode { get; } } public class HttpRequestMessage : IDisposable { + public HttpRequestOptions Options { get; } + public HttpVersionPolicy VersionPolicy { get; set; } } + public sealed class HttpRequestOptions : ICollection>, IDictionary, IEnumerable, IEnumerable> { + public HttpRequestOptions(); + int System.Collections.Generic.ICollection>.Count { get; } + bool System.Collections.Generic.ICollection>.IsReadOnly { get; } + object System.Collections.Generic.IDictionary.this[string key] { get; set; } + ICollection System.Collections.Generic.IDictionary.Keys { get; } + ICollection System.Collections.Generic.IDictionary.Values { get; } + public void Set(HttpRequestOptionsKey key, TValue value); + void System.Collections.Generic.ICollection>.Add(KeyValuePair item); + void System.Collections.Generic.ICollection>.Clear(); + bool System.Collections.Generic.ICollection>.Contains(KeyValuePair item); + void System.Collections.Generic.ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex); + bool System.Collections.Generic.ICollection>.Remove(KeyValuePair item); + void System.Collections.Generic.IDictionary.Add(string key, object value); + bool System.Collections.Generic.IDictionary.ContainsKey(string key); + bool System.Collections.Generic.IDictionary.Remove(string key); + bool System.Collections.Generic.IDictionary.TryGetValue(string key, out object value); + IEnumerator> System.Collections.Generic.IEnumerable>.GetEnumerator(); + IEnumerator System.Collections.IEnumerable.GetEnumerator(); + public bool TryGetValue(HttpRequestOptionsKey key, out TValue value); + } + public readonly struct HttpRequestOptionsKey { + public HttpRequestOptionsKey(string key); + public string Key { get; } + } + public enum HttpVersionPolicy { + RequestVersionExact = 2, + RequestVersionOrHigher = 1, + RequestVersionOrLower = 0, + } public abstract class MessageProcessingHandler : DelegatingHandler { + protected internal sealed override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); } public class MultipartContent : HttpContent, IEnumerable, IEnumerable { + public HeaderEncodingSelector HeaderEncodingSelector { get; set; } + protected override Stream CreateContentReadStream(CancellationToken cancellationToken); + protected override Task CreateContentReadStreamAsync(CancellationToken cancellationToken); + protected override void SerializeToStream(Stream stream, TransportContext context, CancellationToken cancellationToken); + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } public class MultipartFormDataContent : MultipartContent { + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } public sealed class ReadOnlyMemoryContent : HttpContent { + protected override Stream CreateContentReadStream(CancellationToken cancellationToken); + protected override void SerializeToStream(Stream stream, TransportContext context, CancellationToken cancellationToken); + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } + public sealed class SocketsHttpConnectionContext { + public DnsEndPoint DnsEndPoint { get; } + public HttpRequestMessage InitialRequestMessage { get; } + } + public sealed class SocketsHttpHandler : HttpMessageHandler { + public SocketsHttpHandler(); + public bool AllowAutoRedirect { get; set; } + public DecompressionMethods AutomaticDecompression { get; set; } + public Func> ConnectCallback { get; set; } + public TimeSpan ConnectTimeout { get; set; } + public CookieContainer CookieContainer { get; set; } + public ICredentials Credentials { get; set; } + public ICredentials DefaultProxyCredentials { get; set; } + public bool EnableMultipleHttp2Connections { get; set; } + public TimeSpan Expect100ContinueTimeout { get; set; } + public static bool IsSupported { get; } + public TimeSpan KeepAlivePingDelay { get; set; } + public HttpKeepAlivePingPolicy KeepAlivePingPolicy { get; set; } + public TimeSpan KeepAlivePingTimeout { get; set; } + public int MaxAutomaticRedirections { get; set; } + public int MaxConnectionsPerServer { get; set; } + public int MaxResponseDrainSize { get; set; } + public int MaxResponseHeadersLength { get; set; } + public Func> PlaintextStreamFilter { get; set; } + public TimeSpan PooledConnectionIdleTimeout { get; set; } + public TimeSpan PooledConnectionLifetime { get; set; } + public bool PreAuthenticate { get; set; } + public IDictionary Properties { get; } + public IWebProxy Proxy { get; set; } + public HeaderEncodingSelector RequestHeaderEncodingSelector { get; set; } + public TimeSpan ResponseDrainTimeout { get; set; } + public HeaderEncodingSelector ResponseHeaderEncodingSelector { get; set; } + public SslClientAuthenticationOptions SslOptions { get; set; } + public bool UseCookies { get; set; } + public bool UseProxy { get; set; } + protected override void Dispose(bool disposing); + protected internal override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken); + protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken); + } + public sealed class SocketsHttpPlaintextStreamFilterContext { + public HttpRequestMessage InitialRequestMessage { get; } + public Version NegotiatedHttpVersion { get; } + public Stream PlaintextStream { get; } + } public class StreamContent : HttpContent { + protected override Stream CreateContentReadStream(CancellationToken cancellationToken); + protected override void SerializeToStream(Stream stream, TransportContext context, CancellationToken cancellationToken); + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } public class StringContent : ByteArrayContent { + protected override Task SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken); } } ```