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 ripple {
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(
42 boost::system::error_code const& ecResult,
43 int iStatus,
44 std::string const& strData)> complete,
46
47 static void
48 get(bool bSSL,
49 boost::asio::io_context& io_context,
50 std::string strSite,
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,
60
61 static void
62 request(
63 bool bSSL,
64 boost::asio::io_context& io_context,
65 std::string strSite,
66 unsigned short const port,
68 void(boost::asio::streambuf& sb, std::string const& strHost)> build,
69 std::size_t responseMax, // if no Content-Length header
71 std::function<bool(
72 boost::system::error_code const& ecResult,
73 int iStatus,
74 std::string const& strData)> complete,
76};
77
78} // namespace ripple
79
80#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 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 void initializeSSLContext(std::string const &sslVerifyDir, std::string const &sslVerifyFile, bool sslVerify, beast::Journal j)
HTTPClient()=default
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 constexpr auto maxClientHeaderBytes
Definition HTTPClient.h:24
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr auto kilobytes(T value) noexcept