This repository has been archived on 2018-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
BBB-Simple-ACS/client/http_client.hpp

51 lines
1.1 KiB
C++

#pragma once
#include <boost/beast.hpp>
using tcp = boost::asio::ip::tcp;
namespace http = boost::beast::http;
namespace acs
{
class http_client
{
boost::asio::io_service* io_service_;
std::string host_;
tcp::resolver resolver_;
boost::beast::error_code ec_;
boost::beast::flat_buffer buffer_;
tcp::socket socket_;
http::response<http::dynamic_body> response_;
http::request<http::empty_body> request_;
std::function<void(const std::string&)> callback_;
void on_resolve(const boost::system::error_code& ec, const tcp::resolver::iterator& iterator);
void on_connect(const boost::system::error_code& ec);
void on_write(const boost::system::error_code& ec);
void on_read(const boost::system::error_code& ec);
void fail(const std::string& message, const boost::beast::error_code& ec);
void reset();
public:
explicit http_client();
void async_get(
const std::string& host,
const std::string& query,
const std::function<void(const std::string&)>& callback);
};
}