Search Results for

    Show / Hide Table of Contents

    Class HttpConnection

    The default IConnection implementation. Uses HttpClient.

    Inheritance
    object
    HttpConnection
    AwsSigV4HttpConnection
    Implements
    IConnection
    IDisposable
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: OpenSearch.Net
    Assembly: OpenSearch.Net.dll
    Syntax
    public class HttpConnection : IConnection, IDisposable

    Constructors

    | Edit this page View Source

    HttpConnection()

    Declaration
    public HttpConnection()
    | 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)

    Creates a connection that sends every request through the supplied httpClient.

    See HttpConnection(Func<RequestData, HttpClient>) for the responsibilities this places on the caller.

    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
    Type Description
    int
    | Edit this page View Source

    RemovedHandlers

    Declaration
    public int RemovedHandlers { get; }
    Property Value
    Type Description
    int

    Methods

    | Edit this page View Source

    CreateDefaultHttpClientHandler(IConnectionConfigurationValues)

    Creates the handler this connection would create for settings, applying response decompression, ConnectionLimit, proxy settings, server certificate validation and client certificates. Useful as the primary handler of an HttpClient passed to HttpConnection(Func<RequestData, HttpClient>).

    Declaration
    public static HttpClientHandler CreateDefaultHttpClientHandler(IConnectionConfigurationValues settings)
    Parameters
    Type Name Description
    IConnectionConfigurationValues settings
    Returns
    Type Description
    HttpClientHandler
    | Edit this page View Source

    CreateHttpClientHandler(RequestData)

    Declaration
    protected virtual HttpMessageHandler CreateHttpClientHandler(RequestData requestData)
    Parameters
    Type Name Description
    RequestData requestData
    Returns
    Type Description
    HttpMessageHandler
    | Edit this page View Source

    CreateHttpRequestMessage(RequestData)

    Declaration
    protected virtual HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
    Parameters
    Type Name Description
    RequestData requestData
    Returns
    Type Description
    HttpRequestMessage
    | Edit this page View Source

    CreateRequestMessage(RequestData)

    Declaration
    protected virtual HttpRequestMessage CreateRequestMessage(RequestData requestData)
    Parameters
    Type Name Description
    RequestData requestData
    Returns
    Type Description
    HttpRequestMessage
    | 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
    Type Name Description
    RequestData requestData
    CancellationToken cancellationToken
    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
    Type Name Description
    RequestData requestData
    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
    Type Name Description
    HttpRequestMessage requestMessage
    RequestData requestData
    Returns
    Type Description
    bool
    | Edit this page View Source

    SetAuthenticationIfNeeded(HttpRequestMessage, RequestData)

    Declaration
    protected virtual void SetAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
    Parameters
    Type Name Description
    HttpRequestMessage requestMessage
    RequestData requestData
    | Edit this page View Source

    SetBasicAuthenticationIfNeeded(HttpRequestMessage, RequestData)

    Declaration
    protected virtual void SetBasicAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
    Parameters
    Type Name Description
    HttpRequestMessage requestMessage
    RequestData requestData

    Implements

    IConnection
    IDisposable

    Extension Methods

    SuffixExtensions.Suffix(object, string)
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX