camcom 1.0.0-pre2
 
Loading...
Searching...
No Matches
httplib::ClientImpl Class Reference

#include <httplib.h>

Classes

struct  Socket
 
struct  StreamHandle
 

Public Member Functions

 ClientImpl (const std::string &host)
 
 ClientImpl (const std::string &host, int port)
 
 ClientImpl (const std::string &host, int port, const std::string &client_cert_path, const std::string &client_key_path)
 
virtual ~ClientImpl ()
 
virtual bool is_valid () const
 
Result Get (const std::string &path, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, ResponseHandler response_handler, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Headers &headers, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Headers &headers, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Headers &headers, ResponseHandler response_handler, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Params &params, const Headers &headers, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Params &params, const Headers &headers, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Get (const std::string &path, const Params &params, const Headers &headers, ResponseHandler response_handler, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Head (const std::string &path)
 
Result Head (const std::string &path, const Headers &headers)
 
Result Post (const std::string &path)
 
Result Post (const std::string &path, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Params &params)
 
Result Post (const std::string &path, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers)
 
Result Post (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, const Params &params)
 
Result Post (const std::string &path, const Headers &headers, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const std::string &boundary, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const FormDataProviderItems &provider_items, UploadProgress progress=nullptr)
 
Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Put (const std::string &path)
 
Result Put (const std::string &path, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Params &params)
 
Result Put (const std::string &path, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers)
 
Result Put (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, const Params &params)
 
Result Put (const std::string &path, const Headers &headers, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const std::string &boundary, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const FormDataProviderItems &provider_items, UploadProgress progress=nullptr)
 
Result Put (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Patch (const std::string &path)
 
Result Patch (const std::string &path, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Params &params)
 
Result Patch (const std::string &path, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, ContentReceiver content_receiver, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const Params &params)
 
Result Patch (const std::string &path, const Headers &headers, const UploadFormDataItems &items, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const std::string &boundary, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const UploadFormDataItems &items, const FormDataProviderItems &provider_items, UploadProgress progress=nullptr)
 
Result Patch (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const char *body, size_t content_length, const std::string &content_type, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const std::string &body, const std::string &content_type, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const Params &params, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const Headers &headers, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, DownloadProgress progress=nullptr)
 
Result Delete (const std::string &path, const Headers &headers, const Params &params, DownloadProgress progress=nullptr)
 
Result Options (const std::string &path)
 
Result Options (const std::string &path, const Headers &headers)
 
StreamHandle open_stream (const std::string &method, const std::string &path, const Params &params={}, const Headers &headers={}, const std::string &body={}, const std::string &content_type={})
 
bool send (Request &req, Response &res, Error &error)
 
Result send (const Request &req)
 
void stop ()
 
std::string host () const
 
int port () const
 
size_t is_socket_open () const
 
socket_t socket () const
 
void set_hostname_addr_map (std::map< std::string, std::string > addr_map)
 
void set_default_headers (Headers headers)
 
void set_header_writer (std::function< ssize_t(Stream &, Headers &)> const &writer)
 
void set_address_family (int family)
 
void set_tcp_nodelay (bool on)
 
void set_ipv6_v6only (bool on)
 
void set_socket_options (SocketOptions socket_options)
 
void set_connection_timeout (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
void set_connection_timeout (const std::chrono::duration< Rep, Period > &duration)
 
void set_read_timeout (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
void set_read_timeout (const std::chrono::duration< Rep, Period > &duration)
 
void set_write_timeout (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
void set_write_timeout (const std::chrono::duration< Rep, Period > &duration)
 
void set_max_timeout (time_t msec)
 
template<class Rep, class Period>
void set_max_timeout (const std::chrono::duration< Rep, Period > &duration)
 
void set_basic_auth (const std::string &username, const std::string &password)
 
void set_bearer_token_auth (const std::string &token)
 
void set_keep_alive (bool on)
 
void set_follow_location (bool on)
 
void set_path_encode (bool on)
 
void set_compress (bool on)
 
void set_decompress (bool on)
 
void set_payload_max_length (size_t length)
 
void set_interface (const std::string &intf)
 
void set_proxy (const std::string &host, int port)
 
void set_proxy_basic_auth (const std::string &username, const std::string &password)
 
void set_proxy_bearer_token_auth (const std::string &token)
 
void set_logger (Logger logger)
 
void set_error_logger (ErrorLogger error_logger)
 

Protected Member Functions

virtual bool create_and_connect_socket (Socket &socket, Error &error)
 
virtual bool ensure_socket_connection (Socket &socket, Error &error)
 
virtual bool setup_proxy_connection (Socket &socket, std::chrono::time_point< std::chrono::steady_clock > start_time, Response &res, bool &success, Error &error)
 
virtual void shutdown_ssl (Socket &socket, bool shutdown_gracefully)
 
void shutdown_socket (Socket &socket) const
 
void close_socket (Socket &socket)
 
bool process_request (Stream &strm, Request &req, Response &res, bool close_connection, Error &error)
 
bool write_content_with_provider (Stream &strm, const Request &req, Error &error) const
 
void copy_settings (const ClientImpl &rhs)
 
void output_log (const Request &req, const Response &res) const
 
void output_error_log (const Error &err, const Request *req) const
 

Protected Attributes

const std::string host_
 
const int port_
 
Socket socket_
 
std::mutex socket_mutex_
 
std::recursive_mutex request_mutex_
 
size_t socket_requests_in_flight_ = 0
 
std::thread::id socket_requests_are_from_thread_ = std::thread::id()
 
bool socket_should_be_closed_when_request_is_done_ = false
 
std::map< std::string, std::string > addr_map_
 
Headers default_headers_
 
std::function< ssize_t(Stream &, Headers &)> header_writer_
 
std::string client_cert_path_
 
std::string client_key_path_
 
time_t connection_timeout_sec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND
 
time_t connection_timeout_usec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND
 
time_t read_timeout_sec_ = CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECOND
 
time_t read_timeout_usec_ = CPPHTTPLIB_CLIENT_READ_TIMEOUT_USECOND
 
time_t write_timeout_sec_ = CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_SECOND
 
time_t write_timeout_usec_ = CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND
 
time_t max_timeout_msec_ = CPPHTTPLIB_CLIENT_MAX_TIMEOUT_MSECOND
 
std::string basic_auth_username_
 
std::string basic_auth_password_
 
std::string bearer_token_auth_token_
 
bool keep_alive_ = false
 
bool follow_location_ = false
 
bool path_encode_ = true
 
int address_family_ = AF_UNSPEC
 
bool tcp_nodelay_ = CPPHTTPLIB_TCP_NODELAY
 
bool ipv6_v6only_ = CPPHTTPLIB_IPV6_V6ONLY
 
SocketOptions socket_options_ = nullptr
 
bool compress_ = false
 
bool decompress_ = true
 
size_t payload_max_length_ = CPPHTTPLIB_PAYLOAD_MAX_LENGTH
 
bool has_payload_max_length_ = false
 
std::string interface_
 
std::string proxy_host_
 
int proxy_port_ = -1
 
std::string proxy_basic_auth_username_
 
std::string proxy_basic_auth_password_
 
std::string proxy_bearer_token_auth_token_
 
std::mutex logger_mutex_
 
Logger logger_
 
ErrorLogger error_logger_
 

Constructor & Destructor Documentation

◆ ClientImpl() [1/3]

httplib::ClientImpl::ClientImpl ( const std::string & host)
inlineexplicit

◆ ClientImpl() [2/3]

httplib::ClientImpl::ClientImpl ( const std::string & host,
int port )
inlineexplicit

◆ ClientImpl() [3/3]

httplib::ClientImpl::ClientImpl ( const std::string & host,
int port,
const std::string & client_cert_path,
const std::string & client_key_path )
inlineexplicit

◆ ~ClientImpl()

httplib::ClientImpl::~ClientImpl ( )
inlinevirtual

Member Function Documentation

◆ close_socket()

void httplib::ClientImpl::close_socket ( Socket & socket)
inlineprotected

◆ copy_settings()

void httplib::ClientImpl::copy_settings ( const ClientImpl & rhs)
inlineprotected

◆ create_and_connect_socket()

bool httplib::ClientImpl::create_and_connect_socket ( Socket & socket,
Error & error )
inlineprotectedvirtual

◆ Delete() [1/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const char * body,
size_t content_length,
const std::string & content_type,
DownloadProgress progress = nullptr )
inline

◆ Delete() [2/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const Headers & headers,
const char * body,
size_t content_length,
const std::string & content_type,
DownloadProgress progress = nullptr )
inline

◆ Delete() [3/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const Headers & headers,
const Params & params,
DownloadProgress progress = nullptr )
inline

◆ Delete() [4/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
DownloadProgress progress = nullptr )
inline

◆ Delete() [5/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const Headers & headers,
DownloadProgress progress = nullptr )
inline

◆ Delete() [6/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const Params & params,
DownloadProgress progress = nullptr )
inline

◆ Delete() [7/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
const std::string & body,
const std::string & content_type,
DownloadProgress progress = nullptr )
inline

◆ Delete() [8/8]

Result httplib::ClientImpl::Delete ( const std::string & path,
DownloadProgress progress = nullptr )
inline

◆ ensure_socket_connection()

bool httplib::ClientImpl::ensure_socket_connection ( Socket & socket,
Error & error )
inlineprotectedvirtual

◆ Get() [1/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Headers & headers,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Get() [2/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Headers & headers,
DownloadProgress progress = nullptr )
inline

◆ Get() [3/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Headers & headers,
ResponseHandler response_handler,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Get() [4/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Params & params,
const Headers & headers,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Get() [5/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Params & params,
const Headers & headers,
DownloadProgress progress = nullptr )
inline

◆ Get() [6/9]

Result httplib::ClientImpl::Get ( const std::string & path,
const Params & params,
const Headers & headers,
ResponseHandler response_handler,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Get() [7/9]

Result httplib::ClientImpl::Get ( const std::string & path,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Get() [8/9]

Result httplib::ClientImpl::Get ( const std::string & path,
DownloadProgress progress = nullptr )
inline

◆ Get() [9/9]

Result httplib::ClientImpl::Get ( const std::string & path,
ResponseHandler response_handler,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Head() [1/2]

Result httplib::ClientImpl::Head ( const std::string & path)
inline

◆ Head() [2/2]

Result httplib::ClientImpl::Head ( const std::string & path,
const Headers & headers )
inline

◆ host()

std::string httplib::ClientImpl::host ( ) const
inline

◆ is_socket_open()

size_t httplib::ClientImpl::is_socket_open ( ) const
inline

◆ is_valid()

bool httplib::ClientImpl::is_valid ( ) const
inlinevirtual

◆ open_stream()

ClientImpl::StreamHandle httplib::ClientImpl::open_stream ( const std::string & method,
const std::string & path,
const Params & params = {},
const Headers & headers = {},
const std::string & body = {},
const std::string & content_type = {} )
inline

◆ Options() [1/2]

Result httplib::ClientImpl::Options ( const std::string & path)
inline

◆ Options() [2/2]

Result httplib::ClientImpl::Options ( const std::string & path,
const Headers & headers )
inline

◆ output_error_log()

void httplib::ClientImpl::output_error_log ( const Error & err,
const Request * req ) const
inlineprotected

◆ output_log()

void httplib::ClientImpl::output_log ( const Request & req,
const Response & res ) const
inlineprotected

◆ Patch() [1/21]

Result httplib::ClientImpl::Patch ( const std::string & path)
inline

◆ Patch() [2/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [3/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [4/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const Params & params )
inline

◆ Patch() [5/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Patch() [6/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [7/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const FormDataProviderItems & provider_items,
UploadProgress progress = nullptr )
inline

◆ Patch() [8/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const std::string & boundary,
UploadProgress progress = nullptr )
inline

◆ Patch() [9/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Patch() [10/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Patch() [11/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [12/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Patch() [13/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [14/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Headers & headers,
UploadProgress progress = nullptr )
inline

◆ Patch() [15/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const Params & params )
inline

◆ Patch() [16/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [17/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Patch() [18/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Patch() [19/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Patch() [20/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Patch() [21/21]

Result httplib::ClientImpl::Patch ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ port()

int httplib::ClientImpl::port ( ) const
inline

◆ Post() [1/21]

Result httplib::ClientImpl::Post ( const std::string & path)
inline

◆ Post() [2/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [3/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers )
inline

◆ Post() [4/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [5/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const Params & params )
inline

◆ Post() [6/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Post() [7/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [8/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const FormDataProviderItems & provider_items,
UploadProgress progress = nullptr )
inline

◆ Post() [9/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const std::string & boundary,
UploadProgress progress = nullptr )
inline

◆ Post() [10/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Post() [11/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Post() [12/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [13/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Post() [14/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [15/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const Params & params )
inline

◆ Post() [16/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [17/21]

Result httplib::ClientImpl::Post ( const std::string & path,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Post() [18/21]

Result httplib::ClientImpl::Post ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Post() [19/21]

Result httplib::ClientImpl::Post ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Post() [20/21]

Result httplib::ClientImpl::Post ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Post() [21/21]

Result httplib::ClientImpl::Post ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ process_request()

bool httplib::ClientImpl::process_request ( Stream & strm,
Request & req,
Response & res,
bool close_connection,
Error & error )
inlineprotected

◆ Put() [1/21]

Result httplib::ClientImpl::Put ( const std::string & path)
inline

◆ Put() [2/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [3/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers )
inline

◆ Put() [4/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const char * body,
size_t content_length,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [5/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const Params & params )
inline

◆ Put() [6/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
ContentReceiver content_receiver,
DownloadProgress progress = nullptr )
inline

◆ Put() [7/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [8/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const FormDataProviderItems & provider_items,
UploadProgress progress = nullptr )
inline

◆ Put() [9/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
const std::string & boundary,
UploadProgress progress = nullptr )
inline

◆ Put() [10/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Put() [11/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Put() [12/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [13/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Put() [14/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Headers & headers,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [15/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const Params & params )
inline

◆ Put() [16/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const std::string & body,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [17/21]

Result httplib::ClientImpl::Put ( const std::string & path,
const UploadFormDataItems & items,
UploadProgress progress = nullptr )
inline

◆ Put() [18/21]

Result httplib::ClientImpl::Put ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Put() [19/21]

Result httplib::ClientImpl::Put ( const std::string & path,
ContentProviderWithoutLength content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ Put() [20/21]

Result httplib::ClientImpl::Put ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
ContentReceiver content_receiver,
UploadProgress progress = nullptr )
inline

◆ Put() [21/21]

Result httplib::ClientImpl::Put ( const std::string & path,
size_t content_length,
ContentProvider content_provider,
const std::string & content_type,
UploadProgress progress = nullptr )
inline

◆ send() [1/2]

Result httplib::ClientImpl::send ( const Request & req)
inline

◆ send() [2/2]

bool httplib::ClientImpl::send ( Request & req,
Response & res,
Error & error )
inline

◆ set_address_family()

void httplib::ClientImpl::set_address_family ( int family)
inline

◆ set_basic_auth()

void httplib::ClientImpl::set_basic_auth ( const std::string & username,
const std::string & password )
inline

◆ set_bearer_token_auth()

void httplib::ClientImpl::set_bearer_token_auth ( const std::string & token)
inline

◆ set_compress()

void httplib::ClientImpl::set_compress ( bool on)
inline

◆ set_connection_timeout() [1/2]

template<class Rep, class Period>
void httplib::ClientImpl::set_connection_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_connection_timeout() [2/2]

void httplib::ClientImpl::set_connection_timeout ( time_t sec,
time_t usec = 0 )
inline

◆ set_decompress()

void httplib::ClientImpl::set_decompress ( bool on)
inline

◆ set_default_headers()

void httplib::ClientImpl::set_default_headers ( Headers headers)
inline

◆ set_error_logger()

void httplib::ClientImpl::set_error_logger ( ErrorLogger error_logger)
inline

◆ set_follow_location()

void httplib::ClientImpl::set_follow_location ( bool on)
inline

◆ set_header_writer()

void httplib::ClientImpl::set_header_writer ( std::function< ssize_t(Stream &, Headers &)> const & writer)
inline

◆ set_hostname_addr_map()

void httplib::ClientImpl::set_hostname_addr_map ( std::map< std::string, std::string > addr_map)
inline

◆ set_interface()

void httplib::ClientImpl::set_interface ( const std::string & intf)
inline

◆ set_ipv6_v6only()

void httplib::ClientImpl::set_ipv6_v6only ( bool on)
inline

◆ set_keep_alive()

void httplib::ClientImpl::set_keep_alive ( bool on)
inline

◆ set_logger()

void httplib::ClientImpl::set_logger ( Logger logger)
inline

◆ set_max_timeout() [1/2]

template<class Rep, class Period>
void httplib::ClientImpl::set_max_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_max_timeout() [2/2]

void httplib::ClientImpl::set_max_timeout ( time_t msec)
inline

◆ set_path_encode()

void httplib::ClientImpl::set_path_encode ( bool on)
inline

◆ set_payload_max_length()

void httplib::ClientImpl::set_payload_max_length ( size_t length)
inline

◆ set_proxy()

void httplib::ClientImpl::set_proxy ( const std::string & host,
int port )
inline

◆ set_proxy_basic_auth()

void httplib::ClientImpl::set_proxy_basic_auth ( const std::string & username,
const std::string & password )
inline

◆ set_proxy_bearer_token_auth()

void httplib::ClientImpl::set_proxy_bearer_token_auth ( const std::string & token)
inline

◆ set_read_timeout() [1/2]

template<class Rep, class Period>
void httplib::ClientImpl::set_read_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_read_timeout() [2/2]

void httplib::ClientImpl::set_read_timeout ( time_t sec,
time_t usec = 0 )
inline

◆ set_socket_options()

void httplib::ClientImpl::set_socket_options ( SocketOptions socket_options)
inline

◆ set_tcp_nodelay()

void httplib::ClientImpl::set_tcp_nodelay ( bool on)
inline

◆ set_write_timeout() [1/2]

template<class Rep, class Period>
void httplib::ClientImpl::set_write_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_write_timeout() [2/2]

void httplib::ClientImpl::set_write_timeout ( time_t sec,
time_t usec = 0 )
inline

◆ setup_proxy_connection()

bool httplib::ClientImpl::setup_proxy_connection ( Socket & socket,
std::chrono::time_point< std::chrono::steady_clock > start_time,
Response & res,
bool & success,
Error & error )
inlineprotectedvirtual

◆ shutdown_socket()

void httplib::ClientImpl::shutdown_socket ( Socket & socket) const
inlineprotected

◆ shutdown_ssl()

void httplib::ClientImpl::shutdown_ssl ( Socket & socket,
bool shutdown_gracefully )
inlineprotectedvirtual

◆ socket()

socket_t httplib::ClientImpl::socket ( ) const
inline

◆ stop()

void httplib::ClientImpl::stop ( )
inline

◆ write_content_with_provider()

bool httplib::ClientImpl::write_content_with_provider ( Stream & strm,
const Request & req,
Error & error ) const
inlineprotected

Member Data Documentation

◆ addr_map_

std::map<std::string, std::string> httplib::ClientImpl::addr_map_
protected

◆ address_family_

int httplib::ClientImpl::address_family_ = AF_UNSPEC
protected

◆ basic_auth_password_

std::string httplib::ClientImpl::basic_auth_password_
protected

◆ basic_auth_username_

std::string httplib::ClientImpl::basic_auth_username_
protected

◆ bearer_token_auth_token_

std::string httplib::ClientImpl::bearer_token_auth_token_
protected

◆ client_cert_path_

std::string httplib::ClientImpl::client_cert_path_
protected

◆ client_key_path_

std::string httplib::ClientImpl::client_key_path_
protected

◆ compress_

bool httplib::ClientImpl::compress_ = false
protected

◆ connection_timeout_sec_

time_t httplib::ClientImpl::connection_timeout_sec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_SECOND
protected

◆ connection_timeout_usec_

time_t httplib::ClientImpl::connection_timeout_usec_ = CPPHTTPLIB_CONNECTION_TIMEOUT_USECOND
protected

◆ decompress_

bool httplib::ClientImpl::decompress_ = true
protected

◆ default_headers_

Headers httplib::ClientImpl::default_headers_
protected

◆ error_logger_

ErrorLogger httplib::ClientImpl::error_logger_
protected

◆ follow_location_

bool httplib::ClientImpl::follow_location_ = false
protected

◆ has_payload_max_length_

bool httplib::ClientImpl::has_payload_max_length_ = false
protected

◆ header_writer_

std::function<ssize_t(Stream &, Headers &)> httplib::ClientImpl::header_writer_
protected
Initial value:
=
ssize_t write_headers(Stream &strm, const Headers &headers)
Definition httplib.h:7314

◆ host_

const std::string httplib::ClientImpl::host_
protected

◆ interface_

std::string httplib::ClientImpl::interface_
protected

◆ ipv6_v6only_

bool httplib::ClientImpl::ipv6_v6only_ = CPPHTTPLIB_IPV6_V6ONLY
protected

◆ keep_alive_

bool httplib::ClientImpl::keep_alive_ = false
protected

◆ logger_

Logger httplib::ClientImpl::logger_
protected

◆ logger_mutex_

std::mutex httplib::ClientImpl::logger_mutex_
mutableprotected

◆ max_timeout_msec_

time_t httplib::ClientImpl::max_timeout_msec_ = CPPHTTPLIB_CLIENT_MAX_TIMEOUT_MSECOND
protected

◆ path_encode_

bool httplib::ClientImpl::path_encode_ = true
protected

◆ payload_max_length_

size_t httplib::ClientImpl::payload_max_length_ = CPPHTTPLIB_PAYLOAD_MAX_LENGTH
protected

◆ port_

const int httplib::ClientImpl::port_
protected

◆ proxy_basic_auth_password_

std::string httplib::ClientImpl::proxy_basic_auth_password_
protected

◆ proxy_basic_auth_username_

std::string httplib::ClientImpl::proxy_basic_auth_username_
protected

◆ proxy_bearer_token_auth_token_

std::string httplib::ClientImpl::proxy_bearer_token_auth_token_
protected

◆ proxy_host_

std::string httplib::ClientImpl::proxy_host_
protected

◆ proxy_port_

int httplib::ClientImpl::proxy_port_ = -1
protected

◆ read_timeout_sec_

time_t httplib::ClientImpl::read_timeout_sec_ = CPPHTTPLIB_CLIENT_READ_TIMEOUT_SECOND
protected

◆ read_timeout_usec_

time_t httplib::ClientImpl::read_timeout_usec_ = CPPHTTPLIB_CLIENT_READ_TIMEOUT_USECOND
protected

◆ request_mutex_

std::recursive_mutex httplib::ClientImpl::request_mutex_
protected

◆ socket_

Socket httplib::ClientImpl::socket_
protected

◆ socket_mutex_

std::mutex httplib::ClientImpl::socket_mutex_
mutableprotected

◆ socket_options_

SocketOptions httplib::ClientImpl::socket_options_ = nullptr
protected

◆ socket_requests_are_from_thread_

std::thread::id httplib::ClientImpl::socket_requests_are_from_thread_ = std::thread::id()
protected

◆ socket_requests_in_flight_

size_t httplib::ClientImpl::socket_requests_in_flight_ = 0
protected

◆ socket_should_be_closed_when_request_is_done_

bool httplib::ClientImpl::socket_should_be_closed_when_request_is_done_ = false
protected

◆ tcp_nodelay_

bool httplib::ClientImpl::tcp_nodelay_ = CPPHTTPLIB_TCP_NODELAY
protected

◆ write_timeout_sec_

time_t httplib::ClientImpl::write_timeout_sec_ = CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_SECOND
protected

◆ write_timeout_usec_

time_t httplib::ClientImpl::write_timeout_usec_ = CPPHTTPLIB_CLIENT_WRITE_TIMEOUT_USECOND
protected

The documentation for this class was generated from the following file: