1 #ifndef Ndmspc_NHttpRequest_H
2 #define Ndmspc_NHttpRequest_H
42 std::string
get(
const std::string & url,
const std::string & cert_path =
"",
const std::string & key_path =
"",
43 const std::string & key_password_file =
"",
bool insecure =
false);
55 std::string
post(
const std::string & url,
const std::string & post_data,
const std::string & cert_path =
"",
56 const std::string & key_path =
"",
const std::string & key_password_file =
"",
57 bool insecure =
false);
68 int head(
const std::string & url,
const std::string & cert_path =
"",
const std::string & key_path =
"",
69 const std::string & key_password_file =
"",
bool insecure =
false);
84 CURLcode
request(
const std::string & method,
const std::string & url,
const std::string & data,
85 std::ostringstream & response,
const std::string & cert_path,
const std::string & key_path,
86 const std::string & key_password_file,
bool insecure);
96 static size_t WriteCallback(
void * contents,
size_t size,
size_t nmemb,
void * userp);
106 static size_t HeaderCallback(
char * buffer,
size_t size,
size_t nitems,
void * userdata);
Provides HTTP request functionality using libcurl.
std::string post(const std::string &url, const std::string &post_data, const std::string &cert_path="", const std::string &key_path="", const std::string &key_password_file="", bool insecure=false)
Performs an HTTP POST request.
virtual ~NHttpRequest()
Destroys the NHttpRequest instance.
std::string get(const std::string &url, const std::string &cert_path="", const std::string &key_path="", const std::string &key_password_file="", bool insecure=false)
Performs an HTTP GET request.
static size_t HeaderCallback(char *buffer, size_t size, size_t nitems, void *userdata)
Callback for handling response headers.
int head(const std::string &url, const std::string &cert_path="", const std::string &key_path="", const std::string &key_password_file="", bool insecure=false)
Performs an HTTP HEAD request.
std::vector< std::string > received_headers
Received response headers.
static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
Callback for writing response data.
struct curl_slist * headers
List of custom headers.
NHttpRequest()
Constructs a new NHttpRequest instance.
CURL * curl
libcurl handle
CURLcode request(const std::string &method, const std::string &url, const std::string &data, std::ostringstream &response, const std::string &cert_path, const std::string &key_path, const std::string &key_password_file, bool insecure)
Internal method to perform an HTTP request.
void throw_curl_error(CURLcode res) const
Throws an exception if a CURL error occurs.