HttpClient Class

Namespace: System.Net.Http

Assembly: System.Net.Http.dll

Summary

Provides methods for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. The HttpClient class is a fundamental component for making network requests in .NET applications.

Remarks

The HttpClient class is designed to be instantiated once and reused throughout the life of an application. This is because HttpClient is intended to be disposable and used as a singleton. Instantiating an HttpClient class for every request will exhaust the number of sockets available under heavy loads. This can lead to major performance issues and not deployment exceptions.

For more information about best practices for using HttpClient, see the HttpClient lifecycle management documentation.

Constructors

public HttpClient() public HttpClient(HttpMessageHandler handler) public HttpClient(HttpMessageHandler handler, bool disposeHandler)

Methods

GetAsync

Send a GET request to the specified Uri as an asynchronous operation.

public Task<HttpResponseMessage> GetAsync(string requestUri) public Task<HttpResponseMessage> GetAsync(string requestUri, CancellationToken cancellationToken) public Task<HttpResponseMessage> GetAsync(Uri requestUri) public Task<HttpResponseMessage> GetAsync(Uri requestUri, HttpCompletionOption completionOption) public Task<HttpResponseMessage> GetAsync(Uri requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken)

Parameters

Name Type Description
requestUri string | Uri The Uniform Resource Identifier (URI) to request.
completionOption HttpCompletionOption An enumeration value that indicates when the operation should be considered completed. Defaults to HttpCompletionOption.ResponseContentRead.
cancellationToken CancellationToken The token to monitor for cancellation requests.

PostAsync

Send a POST request to the specified Uri as an asynchronous operation.

public Task<HttpResponseMessage> PostAsync(string requestUri, HttpContent content) public Task<HttpResponseMessage> PostAsync(Uri requestUri, HttpContent content) public Task<HttpResponseMessage> PostAsync(string requestUri, HttpContent content, CancellationToken cancellationToken) public Task<HttpResponseMessage> PostAsync(Uri requestUri, HttpContent content, CancellationToken cancellationToken)

Parameters

Name Type Description
requestUri string | Uri The Uniform Resource Identifier (URI) to request.
content HttpContent The HTTP content to send to the server.
cancellationToken CancellationToken The token to monitor for cancellation requests.

PutAsync

Send a PUT request to the specified Uri as an asynchronous operation.

public Task<HttpResponseMessage> PutAsync(string requestUri, HttpContent content) public Task<HttpResponseMessage> PutAsync(Uri requestUri, HttpContent content) public Task<HttpResponseMessage> PutAsync(string requestUri, HttpContent content, CancellationToken cancellationToken) public Task<HttpResponseMessage> PutAsync(Uri requestUri, HttpContent content, CancellationToken cancellationToken)

Parameters

Name Type Description
requestUri string | Uri The Uniform Resource Identifier (URI) to request.
content HttpContent The HTTP content to send to the server.
cancellationToken CancellationToken The token to monitor for cancellation requests.

DeleteAsync

Send a DELETE request to the specified Uri as an asynchronous operation.

public Task<HttpResponseMessage> DeleteAsync(string requestUri) public Task<HttpResponseMessage> DeleteAsync(Uri requestUri) public Task<HttpResponseMessage> DeleteAsync(string requestUri, CancellationToken cancellationToken) public Task<HttpResponseMessage> DeleteAsync(Uri requestUri, CancellationToken cancellationToken)

Parameters

Name Type Description
requestUri string | Uri The Uniform Resource Identifier (URI) to request.
cancellationToken CancellationToken The token to monitor for cancellation requests.

SendAsync

Send an HTTP request as an asynchronous operation.

public Task<HttpResponseMessage> SendAsync(HttpRequestMessage request) public Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) public Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)

Parameters

Name Type Description
request HttpRequestMessage The HTTP request message to send.
completionOption HttpCompletionOption An enumeration value that indicates when the operation should be considered completed.
cancellationToken CancellationToken The token to monitor for cancellation requests.

Properties

public HttpRequestHeaders DefaultRequestHeaders { get; } public long MaxResponseContentBufferSize { get; set; } public Uri BaseAddress { get; set; }

Exceptions

  • ArgumentNullException: The request is null.
  • ObjectDisposedException: The HttpClient has been disposed.
  • HttpRequestException: An error occurred during the processing of the request.