rippled
Loading...
Searching...
No Matches
HTTPClient.h
1#ifndef XRPL_NET_HTTPCLIENT_H_INCLUDED
2#define XRPL_NET_HTTPCLIENT_H_INCLUDED
3
4#include <xrpl/basics/ByteUtilities.h>
5#include <xrpl/beast/utility/Journal.h>
6
7#include <boost/asio/io_context.hpp>
8#include <boost/asio/streambuf.hpp>
9
10#include <chrono>
11#include <deque>
12#include <functional>
13#include <string>
14
15namespace xrpl {
16
20{
21public:
22 explicit HTTPClient() = default;
23
24 static constexpr auto maxClientHeaderBytes = kilobytes(32);
25
26 static void
28 std::string const& sslVerifyDir,
29 std::string const& sslVerifyFile,
30 bool sslVerify,
32
33 static void
34 get(bool bSSL,
35 boost::asio::io_context& io_context,
37 unsigned short const port,
38 std::string const& strPath,
39 std::size_t responseMax, // if no Content-Length header
41 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
42 complete,
44
45 static void
46 get(bool bSSL,
47 boost::asio::io_context& io_context,
48 std::string strSite,
49 unsigned short const port,
50 std::string const& strPath,
51 std::size_t responseMax, // if no Content-Length header
53 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
54 complete,
56
57 static void
58 request(
59 bool bSSL,
60 boost::asio::io_context& io_context,
61 std::string strSite,
62 unsigned short const port,
63 std::function<void(boost::asio::streambuf& sb, std::string const& strHost)> build,
64 std::size_t responseMax, // if no Content-Length header
66 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
67 complete,
69};
70
71} // namespace xrpl
72
73#endif
A generic endpoint for log messages.
Definition Journal.h:41
Provides an asynchronous HTTP client implementation with optional SSL.
Definition HTTPClient.h:20
static void initializeSSLContext(std::string const &sslVerifyDir, std::string const &sslVerifyFile, bool sslVerify, beast::Journal j)
static void get(bool bSSL, boost::asio::io_context &io_context, std::deque< std::string > deqSites, unsigned short const port, std::string const &strPath, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
static void request(bool bSSL, boost::asio::io_context &io_context, std::string strSite, unsigned short const port, std::function< void(boost::asio::streambuf &sb, std::string const &strHost)> build, std::size_t responseMax, std::chrono::seconds timeout, std::function< bool(boost::system::error_code const &ecResult, int iStatus, std::string const &strData)> complete, beast::Journal &j)
static constexpr auto maxClientHeaderBytes
Definition HTTPClient.h:24
HTTPClient()=default
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr auto kilobytes(T value) noexcept