#pragma once #include 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 response_; http::request request_; std::function 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& callback); }; }