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
32 static void
33 get(bool bSSL,
34 boost::asio::io_context& io_context,
36 unsigned short const port,
37 std::string const& strPath,
38 std::size_t responseMax, // if no Content-Length header
40 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
41 complete,
43
44 static void
45 get(bool bSSL,
46 boost::asio::io_context& io_context,
47 std::string strSite,
48 unsigned short const port,
49 std::string const& strPath,
50 std::size_t responseMax, // if no Content-Length header
52 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
53 complete,
55
56 static void
57 request(
58 bool bSSL,
59 boost::asio::io_context& io_context,
60 std::string strSite,
61 unsigned short const port,
62 std::function<void(boost::asio::streambuf& sb, std::string const& strHost)> build,
63 std::size_t responseMax, // if no Content-Length header
65 std::function<bool(boost::system::error_code const& ecResult, int iStatus, std::string const& strData)>
66 complete,
68};
69
70} // 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
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