Internet Protocol
Header Only Library

HTTP Client

How to use HTTP client class

References

#include "ip.hpp"
#include "ip/http/httpclient.hpp"

Syntax

namespace internetprotocol
class http_client_c
#include <iostream>
#include "ip.hpp"

using namespace internetprotocol;

int main()
{
    http_server_c net;

    http_request_t req;
    net.get("/", [&](const http_request_t &request, const std::shared_ptr<http_remote_c> &response) {
        http_response_t &res = response->headers();
        res.body = "hello, world!";
        response->write([](const asio::error_code &ec, const size_t bytes_sent) {
            // Check if response has been sent
        });
    });

    std::string input;
    while (std::getline(std::cin, input)) {
        if (input == "quit") {
            net.close();
            break;
        }
    }
    join_threads();

    return 0;
}

Functions

Is Open

  • Return true if socket is open.
bool is_open() const

Set Host

  • Set address and port to resolve. Must be called before use 'request()' function.
void set_host(const client_bind_options_t &bind_opts = {})

Request

  • Process payload and send request.
void request(const http_request_t &req, const std::function<void(const asio::error_code &, const http_response_t &)> &response_cb)

Close

  • Close connection or cancel request
void close()