|
@@ -52,6 +52,10 @@
|
|
|
#define CPPHTTPLIB_THREAD_POOL_COUNT 8
|
|
#define CPPHTTPLIB_THREAD_POOL_COUNT 8
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
|
|
+ * Headers
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
#ifdef _WIN32
|
|
#ifdef _WIN32
|
|
|
#ifndef _CRT_SECURE_NO_WARNINGS
|
|
#ifndef _CRT_SECURE_NO_WARNINGS
|
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
@@ -61,10 +65,6 @@
|
|
|
#define _CRT_NONSTDC_NO_DEPRECATE
|
|
#define _CRT_NONSTDC_NO_DEPRECATE
|
|
|
#endif //_CRT_NONSTDC_NO_DEPRECATE
|
|
#endif //_CRT_NONSTDC_NO_DEPRECATE
|
|
|
|
|
|
|
|
-/*
|
|
|
|
|
- * Headers
|
|
|
|
|
- */
|
|
|
|
|
-
|
|
|
|
|
#if defined(_MSC_VER)
|
|
#if defined(_MSC_VER)
|
|
|
#ifdef _WIN64
|
|
#ifdef _WIN64
|
|
|
typedef __int64 ssize_t;
|
|
typedef __int64 ssize_t;
|
|
@@ -589,37 +589,45 @@ public:
|
|
|
std::shared_ptr<Response> Head(const char *path, const Headers &headers);
|
|
std::shared_ptr<Response> Head(const char *path, const Headers &headers);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Post(const char *path, const std::string &body,
|
|
std::shared_ptr<Response> Post(const char *path, const std::string &body,
|
|
|
- const char *content_type, bool compress = false);
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
|
const std::string &body,
|
|
const std::string &body,
|
|
|
const char *content_type,
|
|
const char *content_type,
|
|
|
bool compress = false);
|
|
bool compress = false);
|
|
|
|
|
|
|
|
- std::shared_ptr<Response> Post(const char *path, const Params ¶ms, bool compress = false);
|
|
|
|
|
|
|
+ std::shared_ptr<Response> Post(const char *path, const Params ¶ms,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
|
const Params ¶ms, bool compress = false);
|
|
const Params ¶ms, bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Post(const char *path,
|
|
std::shared_ptr<Response> Post(const char *path,
|
|
|
- const MultipartFormDataItems &items, bool compress = false);
|
|
|
|
|
|
|
+ const MultipartFormDataItems &items,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
std::shared_ptr<Response> Post(const char *path, const Headers &headers,
|
|
|
- const MultipartFormDataItems &items, bool compress = false);
|
|
|
|
|
|
|
+ const MultipartFormDataItems &items,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Put(const char *path, const std::string &body,
|
|
std::shared_ptr<Response> Put(const char *path, const std::string &body,
|
|
|
- const char *content_type, bool compress = false);
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Put(const char *path, const Headers &headers,
|
|
std::shared_ptr<Response> Put(const char *path, const Headers &headers,
|
|
|
const std::string &body,
|
|
const std::string &body,
|
|
|
- const char *content_type, bool compress = false);
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Patch(const char *path, const std::string &body,
|
|
std::shared_ptr<Response> Patch(const char *path, const std::string &body,
|
|
|
- const char *content_type, bool compress = false);
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Patch(const char *path, const Headers &headers,
|
|
std::shared_ptr<Response> Patch(const char *path, const Headers &headers,
|
|
|
const std::string &body,
|
|
const std::string &body,
|
|
|
- const char *content_type, bool compress = false);
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress = false);
|
|
|
|
|
|
|
|
std::shared_ptr<Response> Delete(const char *path);
|
|
std::shared_ptr<Response> Delete(const char *path);
|
|
|
|
|
|
|
@@ -3120,14 +3128,14 @@ inline std::shared_ptr<Response> Client::Head(const char *path,
|
|
|
|
|
|
|
|
inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
const std::string &body,
|
|
const std::string &body,
|
|
|
- const char *content_type, bool compress) {
|
|
|
|
|
|
|
+ const char *content_type,
|
|
|
|
|
+ bool compress) {
|
|
|
return Post(path, Headers(), body, content_type, compress);
|
|
return Post(path, Headers(), body, content_type, compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
|
|
- const Headers &headers,
|
|
|
|
|
- const std::string &body,
|
|
|
|
|
- const char *content_type, bool compress) {
|
|
|
|
|
|
|
+inline std::shared_ptr<Response>
|
|
|
|
|
+Client::Post(const char *path, const Headers &headers, const std::string &body,
|
|
|
|
|
+ const char *content_type, bool compress) {
|
|
|
Request req;
|
|
Request req;
|
|
|
req.method = "POST";
|
|
req.method = "POST";
|
|
|
req.headers = headers;
|
|
req.headers = headers;
|
|
@@ -3137,9 +3145,7 @@ inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
req.body = body;
|
|
req.body = body;
|
|
|
|
|
|
|
|
if (compress) {
|
|
if (compress) {
|
|
|
- if (!detail::compress(req.body)) {
|
|
|
|
|
- return nullptr;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!detail::compress(req.body)) { return nullptr; }
|
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -3148,13 +3154,15 @@ inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
return send(req, *res) ? res : nullptr;
|
|
return send(req, *res) ? res : nullptr;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
|
|
- const Params ¶ms, bool compress) {
|
|
|
|
|
|
|
+inline std::shared_ptr<Response>
|
|
|
|
|
+Client::Post(const char *path, const Params ¶ms, bool compress) {
|
|
|
return Post(path, Headers(), params, compress);
|
|
return Post(path, Headers(), params, compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-inline std::shared_ptr<Response>
|
|
|
|
|
-Client::Post(const char *path, const Headers &headers, const Params ¶ms, bool compress) {
|
|
|
|
|
|
|
+inline std::shared_ptr<Response> Client::Post(const char *path,
|
|
|
|
|
+ const Headers &headers,
|
|
|
|
|
+ const Params ¶ms,
|
|
|
|
|
+ bool compress) {
|
|
|
std::string query;
|
|
std::string query;
|
|
|
for (auto it = params.begin(); it != params.end(); ++it) {
|
|
for (auto it = params.begin(); it != params.end(); ++it) {
|
|
|
if (it != params.begin()) { query += "&"; }
|
|
if (it != params.begin()) { query += "&"; }
|
|
@@ -3163,11 +3171,13 @@ Client::Post(const char *path, const Headers &headers, const Params ¶ms, boo
|
|
|
query += detail::encode_url(it->second);
|
|
query += detail::encode_url(it->second);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return Post(path, headers, query, "application/x-www-form-urlencoded", compress);
|
|
|
|
|
|
|
+ return Post(path, headers, query, "application/x-www-form-urlencoded",
|
|
|
|
|
+ compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
inline std::shared_ptr<Response>
|
|
inline std::shared_ptr<Response>
|
|
|
-Client::Post(const char *path, const MultipartFormDataItems &items, bool compress) {
|
|
|
|
|
|
|
+Client::Post(const char *path, const MultipartFormDataItems &items,
|
|
|
|
|
+ bool compress) {
|
|
|
return Post(path, Headers(), items, compress);
|
|
return Post(path, Headers(), items, compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -3205,11 +3215,9 @@ inline std::shared_ptr<Response> Client::Put(const char *path,
|
|
|
return Put(path, Headers(), body, content_type, compress);
|
|
return Put(path, Headers(), body, content_type, compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-inline std::shared_ptr<Response> Client::Put(const char *path,
|
|
|
|
|
- const Headers &headers,
|
|
|
|
|
- const std::string &body,
|
|
|
|
|
- const char *content_type,
|
|
|
|
|
- bool compress) {
|
|
|
|
|
|
|
+inline std::shared_ptr<Response>
|
|
|
|
|
+Client::Put(const char *path, const Headers &headers, const std::string &body,
|
|
|
|
|
+ const char *content_type, bool compress) {
|
|
|
Request req;
|
|
Request req;
|
|
|
req.method = "PUT";
|
|
req.method = "PUT";
|
|
|
req.headers = headers;
|
|
req.headers = headers;
|
|
@@ -3219,9 +3227,7 @@ inline std::shared_ptr<Response> Client::Put(const char *path,
|
|
|
req.body = body;
|
|
req.body = body;
|
|
|
|
|
|
|
|
if (compress) {
|
|
if (compress) {
|
|
|
- if (!detail::compress(req.body)) {
|
|
|
|
|
- return nullptr;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!detail::compress(req.body)) { return nullptr; }
|
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -3237,11 +3243,9 @@ inline std::shared_ptr<Response> Client::Patch(const char *path,
|
|
|
return Patch(path, Headers(), body, content_type, compress);
|
|
return Patch(path, Headers(), body, content_type, compress);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-inline std::shared_ptr<Response> Client::Patch(const char *path,
|
|
|
|
|
- const Headers &headers,
|
|
|
|
|
- const std::string &body,
|
|
|
|
|
- const char *content_type,
|
|
|
|
|
- bool compress) {
|
|
|
|
|
|
|
+inline std::shared_ptr<Response>
|
|
|
|
|
+Client::Patch(const char *path, const Headers &headers, const std::string &body,
|
|
|
|
|
+ const char *content_type, bool compress) {
|
|
|
Request req;
|
|
Request req;
|
|
|
req.method = "PATCH";
|
|
req.method = "PATCH";
|
|
|
req.headers = headers;
|
|
req.headers = headers;
|
|
@@ -3251,9 +3255,7 @@ inline std::shared_ptr<Response> Client::Patch(const char *path,
|
|
|
req.body = body;
|
|
req.body = body;
|
|
|
|
|
|
|
|
if (compress) {
|
|
if (compress) {
|
|
|
- if (!detail::compress(req.body)) {
|
|
|
|
|
- return nullptr;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!detail::compress(req.body)) { return nullptr; }
|
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
req.headers.emplace("Content-Encoding", "gzip");
|
|
|
}
|
|
}
|
|
|
|
|
|