nanomsg next generation NNG  
Home GitHub Documentation

This documentation is for version 0.5.0 of nng, but 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(3)

SYNOPSIS

#include <nng/nng.h>
#include <nng/supplemental/http/http.h>

void nng_http_client_connect(nng_http_client *client, nng_aio *aio);

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(3).

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(3) with an index of zero (0).

RETURN VALUES

None.

ERRORS

NNG_EADDRINVAL

The server 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);
    }
NNG Reference Manual v0.5.0 © 2019 Staysail Systems, Inc, © 2018 Capitar IT Group BV
This document is supplied under the MIT License.
nanomsg™ and nng™ are trademarks of Garrett D'Amore.