14 #include <unordered_map>
18 #include <curl/curl.h>
29 Exception (
const char *reason =
"HTTP error");
30 Exception (
const char *
function, CURLcode code);
31 Exception (
const char *
function, CURLcode code,
const char *detail);
32 Exception (CURLcode code,
const char *detail);
33 virtual const char *
what() const noexcept override final {
44 using StringDict = std::unordered_map<std::string, std::string>;
56 void dump (std::ostream & = std::cerr)
const;
69 void dump (std::ostream & = std::cerr)
const;
Definition: httpclient.h:25
std::string explanation
Definition: httpclient.h:27
virtual const char * what() const noexcept override final
Definition: httpclient.h:33
Exception(const char *reason="HTTP error")
Definition: httpclient.cpp:23
Definition: httpclient.h:20
CURL * session
Definition: httpclient.h:21
HttpClient & operator=(const HttpClient &)=delete
HttpClient(bool dbx=false)
Definition: httpclient.cpp:347
const Response performHttpRequest(const Request &request)
Definition: httpclient.cpp:285
~HttpClient()
Definition: httpclient.cpp:355
RequestType
Definition: httpclient.h:38
HttpClient(HttpClient &&)=delete
bool debug
Definition: httpclient.h:22
std::unordered_map< std::string, std::string > StringDict
Definition: httpclient.h:44
HttpClient(const HttpClient &)=delete
Definition: httpclient.h:45
StringDict parameters
Definition: httpclient.h:51
std::string user_agent
Definition: httpclient.h:54
bool debug
Definition: httpclient.h:46
std::string body
Definition: httpclient.h:55
RequestType type
Definition: httpclient.h:48
void dump(std::ostream &=std::cerr) const
Log request details to a file/stream.
Definition: httpclient.cpp:66
std::string URL
Definition: httpclient.h:49
StringDict headers
Definition: httpclient.h:52
StringDict cookies
Definition: httpclient.h:53
std::string proxy
Definition: httpclient.h:50
long timeout
Definition: httpclient.h:47
Definition: httpclient.h:59
std::string http_status_text
Definition: httpclient.h:64
StringDict headers
Definition: httpclient.h:66
bool header_corruption
Definition: httpclient.h:65
int http_status
Definition: httpclient.h:63
void dump(std::ostream &=std::cerr) const
Log response details to a file/stream.
Definition: httpclient.cpp:76
std::string body
Definition: httpclient.h:68
bool awaiting_http_status_line
Definition: httpclient.h:61
bool debug
Definition: httpclient.h:60
CURLcode curl_code
Definition: httpclient.h:62
StringDict cookies
Definition: httpclient.h:67