29#include <boost/optional/optional.hpp>
39 static constexpr const char hexVals[16] = {
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F'};
46 static constexpr const char unsave_chars[] =
"\"<>%\\^[]`+$,@:;!#&";
50 bool is_unsafe(
unsigned char compare_char);
70 virtual bool connect(std::chrono::milliseconds timeout) = 0;
73 virtual bool invoke(
const boost::string_ref
uri,
const boost::string_ref method,
const boost::string_ref body, std::chrono::milliseconds timeout,
const http_response_info** ppresponse_info = NULL,
const fields_list& additional_params =
fields_list()) = 0;
84 virtual std::unique_ptr<abstract_http_client>
create() = 0;
#define s(x, c)
Definition: aesb.c:47
Definition: abstract_http_client.h:62
virtual bool connect(std::chrono::milliseconds timeout)=0
virtual bool disconnect()=0
virtual bool invoke_post(const boost::string_ref uri, const std::string &body, std::chrono::milliseconds timeout, const http_response_info **ppresponse_info=NULL, const fields_list &additional_params=fields_list())=0
virtual uint64_t get_bytes_sent() const =0
abstract_http_client()
Definition: abstract_http_client.h:64
virtual bool invoke(const boost::string_ref uri, const boost::string_ref method, const boost::string_ref body, std::chrono::milliseconds timeout, const http_response_info **ppresponse_info=NULL, const fields_list &additional_params=fields_list())=0
bool set_server(const std::string &address, boost::optional< login > user, ssl_options_t ssl_options=ssl_support_t::e_ssl_support_autodetect)
Definition: abstract_http_client.cpp:133
virtual void set_auto_connect(bool auto_connect)=0
virtual ~abstract_http_client()
Definition: abstract_http_client.h:65
virtual bool set_proxy(const std::string &address)
Definition: abstract_http_client.cpp:142
virtual bool is_connected(bool *ssl=NULL)=0
virtual void set_server(std::string host, std::string port, boost::optional< login > user, ssl_options_t ssl_options=ssl_support_t::e_ssl_support_autodetect)=0
virtual bool invoke_get(const boost::string_ref uri, std::chrono::milliseconds timeout, const std::string &body=std::string(), const http_response_info **ppresponse_info=NULL, const fields_list &additional_params=fields_list())=0
virtual uint64_t get_bytes_received() const =0
Definition: abstract_http_client.h:81
virtual std::unique_ptr< abstract_http_client > create()=0
virtual ~http_client_factory()
Definition: abstract_http_client.h:83
uint32_t address
Definition: getifaddr.c:269
Definition: abstract_http_client.h:60
std::list< std::pair< std::string, std::string > > fields_list
Definition: http_base.h:66
std::string convert(char val)
Definition: abstract_http_client.cpp:74
std::string conver_to_url_format(const std::string &uri)
Definition: abstract_http_client.cpp:82
std::string convert_to_url_format_force_all(const std::string &uri)
Definition: abstract_http_client.cpp:119
std::string convert_from_url_format(const std::string &uri)
Definition: abstract_http_client.cpp:99
std::string dec_to_hex(char num, int radix)
Definition: abstract_http_client.cpp:28
std::string hex_to_dec_2bytes(const char *s)
Definition: abstract_http_client.cpp:64
const char * get_hex_vals()
Definition: abstract_http_client.h:37
int get_index(const char *s, char c)
Definition: abstract_http_client.cpp:58
const char * get_unsave_chars()
Definition: abstract_http_client.h:43
bool is_unsafe(unsigned char compare_char)
Definition: abstract_http_client.cpp:14
@ e_ssl_support_autodetect
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:40
boost::endian::big_uint16_t port
Definition: socks.cpp:59
unsigned __int64 uint64_t
Definition: stdint.h:136
Definition: http_base.h:163