System.Net.Http Namespace

Provides a programming interface for modern HTTP applications.

Classes

Name Description
ByteArrayContent

Provides HTTP content based on a byte array.

DelegatingHandler

A type for HTTP handlers that delegate the processing of HTTP response messages to another handler, called the inner handler.

FormUrlEncodedContent

A container for name/value tuples encoded using application/x-www-form-urlencoded MIME type.

HttpClient

Provides a class for sending HTTP requests and receiving HTTP responses from a resource identified by a URI.

HttpClientHandler

The default message handler used by HttpClient in .NET Framework.

HttpContent

A base class representing an HTTP entity body and content headers.

HttpMessageHandler

A base type for HTTP message handlers.

HttpMessageInvoker

A specialty class that allows applications to call the SendAsync(HttpRequestMessage, CancellationToken) method on an HTTP handler chain.

HttpMethod

A helper class for retrieving and comparing standard HTTP methods and for creating new HTTP methods.

HttpRequestException

A base class for exceptions thrown by the HttpClient and HttpMessageHandler classes.

HttpRequestMessage

Represents a HTTP request message.

HttpResponseMessage

Represents a HTTP response message including the status code and data.

MessageProcessingHandler

A base type for handlers which only do some small processing of request and/or response messages.

MultipartContent

Provides a collection of HttpContent objects that get serialized using the multipart/* content type specification.

MultipartFormDataContent

Provides a container for content encoded using multipart/form-data MIME type.

ReadOnlyMemoryContent

Provides HTTP content based on a ReadOnlyMemory<T>.

RtcRequestFactory
StreamContent

Provides HTTP content based on a stream.

StringContent

Provides HTTP content based on a string.

WebRequestHandler

Provides desktop-specific features not available to Windows Store apps or other environments.

Enums

Name Description
ClientCertificateOption

Specifies how client certificates are provided.

HttpCompletionOption

Indicates if HttpClient operations should be considered completed either as soon as a response is available, or after reading the entire response message including the content.

Remarks

The System.Net.Http namespace is designed to provide the following components:

  • HTTP client components that allow users to consume modern web services over HTTP.
  • HTTP components that can be used by both clients and servers (HTTP headers and messages, for example). This provides a consistent programming model on both the client and the server side for modern web services over HTTP.

The System.Net.Http namespace and the related System.Net.Http.Headers namespace provide the following set of components:

There are various HTTP message handlers that you can use:

  • DelegatingHandler - A class used to plug a handler into a handler chain.
  • HttpMessageHandler - A simple class to derive from that supports the most common requirements for most applications.
  • HttpClientHandler - A class that operates at the bottom of the handler chain that actually handles the HTTP transport operations.

The contents of an HTTP message corresponds to the entity body defined in RFC 2616.

The following classes can be used for HTTP content:

If your app uses the System.Net.Http and System.Net.Http.Headers namespaces and intends to download large amounts of data (50 megabytes or more), then it should stream those downloads and not use the default buffering. If you use the default buffering, the client memory usage will get very large, potentially resulting in substantially reduced performance.

See also