24#include <boost/asio/executor_work_guard.hpp>
25#include <boost/asio/strand.hpp>
26#include <boost/beast/core.hpp>
27#include <boost/beast/http.hpp>
28#include <boost/beast/ssl.hpp>
29#include <boost/beast/version.hpp>
33#include <unordered_map>
44 boost::asio::any_io_executor ioc, boost::asio::ssl::context & ssl_context,
45 const std::function<
void(
const TResponse &)> response);
51 const std::string & host,
const std::string & target,
52 const boost::beast::http::verb http_method,
const int & version)
override;
57 const std::string
kPort =
"443";
60 boost::beast::error_code ec, boost::asio::ip::tcp::resolver::results_type results)
override;
61 void fail(boost::beast::error_code ec,
const char * what)
override;
63 boost::beast::error_code ec,
64 boost::asio::ip::tcp::resolver::results_type::endpoint_type)
override;
66 void on_write(boost::beast::error_code ec, std::size_t bytes_transferred)
override;
67 void on_read(boost::beast::error_code ec, std::size_t bytes_transferred)
override;
68 void on_shutdown(boost::beast::error_code ec)
override;
69 void setBody(
const std::string & body)
override;
70 void setHeaders(
const std::unordered_map<std::string, std::string> & headers)
override;
71 void appendToHeader(
const std::string & key,
const std::string & val);
77 boost::beast::ssl_stream<boost::beast::tcp_stream>
stream_;
79 boost::beast::http::request<boost::beast::http::string_body>
req_;
boost::beast::http::response< boost::beast::http::string_body > TResponse
ssl_http_session(boost::asio::any_io_executor ioc, boost::asio::ssl::context &ssl_context, const std::function< void(const TResponse &)> response)
void fail(boost::beast::error_code ec, const char *what) override
void appendToHeader(const std::string &key, const std::string &val)
void run(const std::string &host, const std::string &target, const boost::beast::http::verb http_method, const int &version) override
boost::beast::ssl_stream< boost::beast::tcp_stream > stream_
boost::beast::flat_buffer buffer_
void on_write(boost::beast::error_code ec, std::size_t bytes_transferred) override
void on_handshake(boost::beast::error_code ec) override
boost::beast::http::request< boost::beast::http::string_body > req_
void on_resolve(boost::beast::error_code ec, boost::asio::ip::tcp::resolver::results_type results) override
virtual ~ssl_http_session()
std::string getPort() override
void setHeaders(const std::unordered_map< std::string, std::string > &headers) override
std::function< void(const TResponse &)> onResponse
void setBody(const std::string &body) override
void on_read(boost::beast::error_code ec, std::size_t bytes_transferred) override
void on_shutdown(boost::beast::error_code ec) override
void on_connect(boost::beast::error_code ec, boost::asio::ip::tcp::resolver::results_type::endpoint_type) override
boost::asio::ip::tcp::resolver resolver_