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.