51 lines
1.1 KiB
C++
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);
|
|
};
|
|
} |