xrpld
Loading...
Searching...
No Matches
HTTPClient.h
1#pragma once
2
3#include <xrpl/basics/ByteUtilities.h>
4#include <xrpl/beast/utility/Journal.h>
5
6#include <boost/asio/io_context.hpp>
7#include <boost/asio/streambuf.hpp>
8
9#include <chrono>
10#include <cstddef>
11#include <deque>
12#include <functional>
13#include <string>
14
15namespace xrpl {
16
21{
22public:
23 explicit HTTPClient() = default;
24
25 static constexpr auto kMaxClientHeaderBytes = kilobytes(32);
26
27 static void
29 std::string const& sslVerifyDir,
30 std::string const& sslVerifyFile,
31 bool sslVerify,
33
44 static void
46
47 static void
48 get(bool bSSL,
49 boost::asio::io_context& ioContext,
51 unsigned short const port,
52 std::string const& strPath,
53 std::size_t responseMax, // if no Content-Length header
55 std::function<bool(
56 boost::system::error_code const& ecResult,
57 int iStatus,
58 std::string const& strData)> complete,
59 beast::Journal const& j);
60
61 static void
62 get(bool bSSL,
63 boost::asio::io_context& ioContext,
64 std::string strSite,
65 unsigned short const port,
66 std::string const& strPath,
67 std::size_t responseMax, // if no Content-Length header
69 std::function<bool(
70 boost::system::error_code const& ecResult,
71 int iStatus,
72 std::string const& strData)> complete,
73 beast::Journal const& j);
74
75 static void
76 request(
77 bool bSSL,
78 boost::asio::io_context& ioContext,
79 std::string strSite,
80 unsigned short const port,
81 std::function<void(boost::asio::streambuf& sb, std::string const& strHost)> build,
82 std::size_t responseMax, // if no Content-Length header
84 std::function<bool(
85 boost::system::error_code const& ecResult,
86 int iStatus,
87 std::string const& strData)> complete,
88 beast::Journal const& j);
89};
90
91} // namespace xrpl
A generic endpoint for log messages.
Definition Journal.h:44
static void initializeSSLContext(std::string const &sslVerifyDir, std::string const &sslVerifyFile, bool sslVerify, beast::Journal j)
static constexpr auto kMaxClientHeaderBytes
Definition HTTPClient.h:25
static void cleanupSSLContext()
Destroys the global SSL context created by initializeSSLContext().
static void request(bool bSSL, boost::asio::io_context &ioContext, 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 const &j)
static void get(bool bSSL, boost::asio::io_context &ioContext, 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 const &j)
HTTPClient()=default
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
constexpr auto kilobytes(T value) noexcept