CoreComponents 3.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
HttpClient Class Referencefinal

HTTP client. More...

#include <cc/HttpClient>

Inheritance diagram for HttpClient:

Public Types

using Generate = Function<void(HttpMessageGenerator &)>
 User-defined generator function.
 

Public Member Functions

 HttpClient (const Uri &uri, const TlsClientOptions &tlsOptions=TlsClientOptions{})
 Create a new HTTP client (automatically start to establish a connection to uri)
 
 HttpClient (const SocketAddress &address, const TlsClientOptions &tlsOptions=TlsClientOptions{})
 Create a new HTTP client (automatically start to establish a connection to address)
 
SocketAddress address () const
 Address of the HTTP server.
 
bool waitEstablished (int timeout=-1)
 Wait until the connection to the HTTP server has been established.
 
HttpResponse query (const String &method, const String &path=String{}, const Generate &generate=Generate{})
 Send out HTTP request and wait for the response.
 
- Public Member Functions inherited from Object
 Object ()=default
 Create a null object.
 
 operator bool () const
 Check if this is a non-null object.
 
bool isNull () const
 Check if this is a null object.
 
template<class T >
bool is () const
 Check if this object is of type T.
 
template<class T >
as () const
 Cast this object to type T.
 
bool isWeak () const
 Check if the underlying object reference is weak.
 
bool operator== (const Object &other) const
 Equality operator.
 
std::strong_ordering operator<=> (const Object &other) const
 Ordering operator.
 
long useCount () const
 Reference count.
 

Additional Inherited Members

- Protected Member Functions inherited from Object
template<class T >
weak () const
 
template<class T >
void initOnce ()
 Create the object state when called the first time.
 
template<class T >
void initOncePerThread ()
 Create a distinct object state for each thread when called the first time in that thread.
 
 Object (State *newState)
 Initialize object with newState.
 
 Object (State *state, Alias)
 
 Object (State *state, Weak)
 
Objectoperator= (std::nullptr_t)
 
- Static Protected Member Functions inherited from Object
template<class T >
static T alias (const State *state)
 Create an alias object for the given state.
 
template<class T >
static T weak (const State *state)
 
- Protected Attributes inherited from Object
Handle< Stateme
 Internal object state
 

Detailed Description

HTTP client.

Member Typedef Documentation

◆ Generate

User-defined generator function.

Constructor & Destructor Documentation

◆ HttpClient() [1/2]

HttpClient ( const Uri & uri,
const TlsClientOptions & tlsOptions = TlsClientOptions{} )
explicit

Create a new HTTP client (automatically start to establish a connection to uri)

Parameters
uriProvides the host name and port of the HTTP server to connect to
tlsOptionsTLS client credentials and connection parameters
Note
The client will automatically connect to port 443 (TLS) if not explicitly specifying the URI scheme "http".
Exceptions
HostNameResolutionError

◆ HttpClient() [2/2]

HttpClient ( const SocketAddress & address,
const TlsClientOptions & tlsOptions = TlsClientOptions{} )
explicit

Create a new HTTP client (automatically start to establish a connection to address)

Parameters
addressThe host address and port number of the HTTP server to connect to
tlsOptionsTLS client credentials and connection parameters

Member Function Documentation

◆ address()

SocketAddress address ( ) const

Address of the HTTP server.

◆ waitEstablished()

bool waitEstablished ( int timeout = -1)

Wait until the connection to the HTTP server has been established.

Parameters
timeoutTimeout in milliseconds (-1 for indefinite)
Returns
True if connection was successfully established before timeout

◆ query()

HttpResponse query ( const String & method,
const String & path = String{},
const Generate & generate = Generate{} )

Send out HTTP request and wait for the response.

Parameters
methodHTTP method ("GET", "HEAD", "PUT", "POST" or "DELETE")
pathHTTP request path
generateCustom method which allows to add custom headers or payload
Returns
HTTP response
Exceptions
IoExhaustion
HttpCloseRequest
SystemError