rippled
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 <deque>
11#include <functional>
12#include <string>
13
14namespace xrpl {
15
19{
20public:
21 explicit HTTPClient() = default;
22
23 static constexpr auto maxClientHeaderBytes = kilobytes(32);
24
25 static void
27 std::string const& sslVerifyDir,
28 std::string const& sslVerifyFile,
29 bool sslVerify,
31
41 static void
43
44 static void
45 get(bool bSSL,
46 boost::asio::io_context& io_context,
48 unsigned short const port,
49 std::string const& strPath,
50 std::size_t responseMax, // if no Content-Length header
52 std::function<bool(
53 boost::system::error_code const& ecResult,
54 int iStatus,
55 std::string const& strData)> complete,
57
58 static void
59 get(bool bSSL,
60 boost::asio::io_context& io_context,
61 std::string strSite,
62 unsigned short const port,
63 std::string const& strPath,
64 std::size_t responseMax, // if no Content-Length header
66 std::function<bool(
67 boost::system::error_code const& ecResult,
68 int iStatus,
69 std::string const& strData)> complete,
71
72 static void
73 request(
74 bool bSSL,
75 boost::asio::io_context& io_context,
76 std::string strSite,
77 unsigned short const port,
78 std::function<void(boost::asio::streambuf& sb, std::string const& strHost)> build,
79 std::size_t responseMax, // if no Content-Length header
81 std::function<bool(
82 boost::system::error_code const& ecResult,
83 int iStatus,
84 std::string const& strData)> complete,
86};
87
88} // namespace xrpl
A generic endpoint for log messages.
Definition Journal.h:40
Provides an asynchronous HTTP client implementation with optional SSL.
Definition HTTPClient.h:19
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:23
static void cleanupSSLContext()
Destroys the global SSL context created by initializeSSLContext().
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