Class HttpConnection
The default IConnection implementation. Uses HttpClient.
Inheritance
HttpConnection
Namespace: OpenSearch.Net
Assembly: OpenSearch.Net.dll
Syntax
public class HttpConnection : IConnection, IDisposable
Constructors
|
Edit this page
View Source
HttpConnection()
Declaration
|
Edit this page
View Source
HttpConnection(Func<RequestData, HttpClient>)
Creates a connection that asks httpClientProvider for the HttpClient to send each request with.
The caller owns the returned clients and their handlers, so the handler-level settings this connection would otherwise
apply in CreateHttpClientHandler(RequestData) must be configured on the caller's handler instead:
EnableHttpCompression (response decompression),
ConnectionLimit, proxy settings, client certificates,
ServerCertificateValidationCallback and
DnsRefreshTimeout (handler lifetime). CreateDefaultHttpClientHandler(IConnectionConfigurationValues)
creates a handler configured from the settings. Since this connection creates no handlers, per request
ClientCertificates are not applied, and neither is an override of
CreateHttpClientHandler(RequestData) in a subclass.
Exceptions thrown by the client's handler pipeline, such as a resilience handler's timeout or open circuit, are reported as a
failed call to the node, so the request fails over to the next node like any other transport failure.
RequestTimeout is still honoured per request through cancellation, but the
client's own Timeout applies as well and caps it: a longer request timeout never takes effect. Set
Timeout to InfiniteTimeSpan, or use
HttpConnection(Func<RequestData, HttpMessageHandler>) to make the request timeout the only limit.
Declaration
public HttpConnection(Func<RequestData, HttpClient> httpClientProvider)
Parameters
| Type |
Name |
Description |
| Func<RequestData, HttpClient> |
httpClientProvider |
Returns the client to send a request with. Returned clients are not disposed by this connection.
|
|
Edit this page
View Source
HttpConnection(Func<RequestData, HttpMessageHandler>)
Creates a connection that asks httpMessageHandlerProvider for the HttpMessageHandler to send
each request through, e.g. _ => httpMessageHandlerFactory.CreateHandler("opensearch") to send through a named
IHttpClientFactory client's handler pipeline.
Unlike with a supplied HttpClient, no client level timeout applies, so
RequestTimeout and per request overrides of it are the only limit on a request.
Client level configuration such as DefaultRequestHeaders is not applied either. Otherwise the
responsibilities described on HttpConnection(Func<RequestData, HttpClient>) apply.
Declaration
public HttpConnection(Func<RequestData, HttpMessageHandler> httpMessageHandlerProvider)
Parameters
| Type |
Name |
Description |
| Func<RequestData, HttpMessageHandler> |
httpMessageHandlerProvider |
Returns the handler to send a request through. Returned handlers are not disposed by this connection.
|
|
Edit this page
View Source
HttpConnection(HttpClient)
Declaration
public HttpConnection(HttpClient httpClient)
Parameters
| Type |
Name |
Description |
| HttpClient |
httpClient |
The client to send requests with. It is not disposed by this connection.
|
Properties
|
Edit this page
View Source
InUseHandlers
Declaration
public int InUseHandlers { get; }
Property Value
|
Edit this page
View Source
RemovedHandlers
Declaration
public int RemovedHandlers { get; }
Property Value
Methods
|
Edit this page
View Source
CreateDefaultHttpClientHandler(IConnectionConfigurationValues)
Declaration
public static HttpClientHandler CreateDefaultHttpClientHandler(IConnectionConfigurationValues settings)
Parameters
Returns
|
Edit this page
View Source
CreateHttpClientHandler(RequestData)
Declaration
protected virtual HttpMessageHandler CreateHttpClientHandler(RequestData requestData)
Parameters
Returns
|
Edit this page
View Source
CreateHttpRequestMessage(RequestData)
Declaration
protected virtual HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
Parameters
Returns
|
Edit this page
View Source
CreateRequestMessage(RequestData)
Declaration
protected virtual HttpRequestMessage CreateRequestMessage(RequestData requestData)
Parameters
Returns
|
Edit this page
View Source
DisposeManagedResources()
Declaration
protected virtual void DisposeManagedResources()
|
Edit this page
View Source
RequestAsync<TResponse>(RequestData, CancellationToken)
Declaration
public virtual Task<TResponse> RequestAsync<TResponse>(RequestData requestData, CancellationToken cancellationToken) where TResponse : class, IOpenSearchResponse, new()
Parameters
Returns
| Type |
Description |
| Task<TResponse> |
|
Type Parameters
| Name |
Description |
| TResponse |
|
|
Edit this page
View Source
Request<TResponse>(RequestData)
Declaration
public virtual TResponse Request<TResponse>(RequestData requestData) where TResponse : class, IOpenSearchResponse, new()
Parameters
Returns
| Type |
Description |
| TResponse |
|
Type Parameters
| Name |
Description |
| TResponse |
|
|
Edit this page
View Source
SetApiKeyAuthenticationIfNeeded(HttpRequestMessage, RequestData)
Declaration
protected virtual bool SetApiKeyAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
Parameters
Returns
|
Edit this page
View Source
SetAuthenticationIfNeeded(HttpRequestMessage, RequestData)
Declaration
protected virtual void SetAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
Parameters
|
Edit this page
View Source
SetBasicAuthenticationIfNeeded(HttpRequestMessage, RequestData)
Declaration
protected virtual void SetBasicAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
Parameters
Implements
Extension Methods