#include <nng/nng.h>
#include <nng/supplemental/http/http.h>
void nng_http_client_connect(nng_http_client *client, nng_aio *aio);
This documentation is for the TIP (development tree) of NNG and may represent unreleased changes or functionality that is experimental, and is subject to change before release. The latest released version is v1.8.0. See the documentation for v1.8.0 for the most up-to-date information. |
nng_http_client_connect(3http)
NAME
nng_http_client_connect - establish HTTP client connection
SYNOPSIS
DESCRIPTION
The nng_http_client_connect()
starts the process of establishing an HTTP
connection from client to the server that was indicated in the URL that
client was configured with.
The result of the operation will be stored in the aio when the operation
is complete, and will be obtainable via
nng_aio_result()
.
On success, a pointer to the underlying HTTP client (type nng_http_conn *
)
will be stored in the first output result of the aio, and can be
obtained by
nng_aio_get_output()
with an index of zero (0).
RETURN VALUES
None.
ERRORS
NNG_EADDRINVAL
|
The client is configured with an invalid address. |
NNG_ECANCELED
|
The operation was aborted. |
NNG_ECONNREFUSED
|
The TCP connection was refused by the server. |
NNG_ECONNRESET
|
The TCP connection was reset by the server. |
NNG_ENOMEM
|
Insufficient free memory exists. |
EXAMPLE
nng_aio *aio;
nng_url *url;
nng_http_client *client;
nng_http_conn *conn;
int rv;
// Error checks elided for clarity.
nng_url_parse(&url, "http://www.google.com");
nng_aio_alloc(&aio, NULL, NULL);
nng_http_client_alloc(&client, url);
nng_http_client_connect(client, aio);
// Wait for connection to establish (or attempt to fail).
nng_aio_wait(aio);
if ((rv = nng_aio_result(aio)) != 0) {
printf("Connection failed: %s\n", nng_strerror(rv));
} else {
// Connection established, get it.
conn = nng_aio_get_output(aio, 0);
// ... do something with it here
// Close the connection when done to avoid leaking it.
nng_http_conn_close(conn);
}