Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

NAME

Search::Elasticsearch::Cxn::HTTPTiny - A Cxn implementation which uses HTTP::Tiny

VERSION

version 6.80_1

DESCRIPTION

Provides the default HTTP Cxn class and is based on HTTP::Tiny. The HTTP::Tiny backend is fast, uses pure Perl, support proxies and https and provides persistent connections.

This class does Search::Elasticsearch::Role::Cxn, whose documentation provides more information, and Search::Elasticsearch::Role::Is_Sync.

CONFIGURATION

Inherited configuration

From Search::Elasticsearch::Role::Cxn

SSL/TLS

Search::Elasticsearch::Cxn::HTTPTiny uses IO::Socket::SSL to support HTTPS. By default, no validation of the remote host is performed.

This behaviour can be changed by passing the ssl_options parameter with any options accepted by IO::Socket::SSL. For instance, to check that the remote host has a trusted certificate, and to avoid man-in-the-middle attacks, you could do the following:

my $es = Search::Elasticsearch->new(
nodes => [
],
ssl_options => {
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_ca_file => '/path/to/cacert.pem'
}
);

If the remote server cannot be verified, an Search::Elasticsearch::Error will be thrown.

If you want your client to present its own certificate to the remote server, then use:

my $es = Search::Elasticsearch->new(
nodes => [
],
ssl_options => {
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_use_cert => 1,
SSL_ca_file => '/path/to/cacert.pem',
SSL_cert_file => '/path/to/client.pem',
SSL_key_file => '/path/to/client.pem',
}
);

METHODS

perform_request()

($status,$body) = $self->perform_request({
# required
method => 'GET|HEAD|POST|PUT|DELETE',
path => '/path/of/request',
qs => \%query_string_params,
# optional
data => $body_as_string,
mime_type => 'application/json',
timeout => $timeout
});

Sends the request to the associated Elasticsearch node and returns a $status code and the decoded response $body, or throws an error if the request failed.

Inherited methods

From Search::Elasticsearch::Role::Cxn

SEE ALSO

AUTHOR

Enrico Zimuel <enrico.zimuel@elastic.co>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2020 by Elasticsearch BV.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004