chore: upgrade cpp-httplib from v0.27.0 to v0.28.0 (#17513)
This commit is contained in:
parent
b3b03a7baf
commit
f3a848a3b1
|
|
@ -16,7 +16,7 @@ vendor = {
|
||||||
# "https://github.com/mackron/miniaudio/raw/refs/tags/0.11.23/miniaudio.h": "vendor/miniaudio/miniaudio.h",
|
# "https://github.com/mackron/miniaudio/raw/refs/tags/0.11.23/miniaudio.h": "vendor/miniaudio/miniaudio.h",
|
||||||
"https://github.com/mackron/miniaudio/raw/669ed3e844524fcd883231b13095baee9f6de304/miniaudio.h": "vendor/miniaudio/miniaudio.h",
|
"https://github.com/mackron/miniaudio/raw/669ed3e844524fcd883231b13095baee9f6de304/miniaudio.h": "vendor/miniaudio/miniaudio.h",
|
||||||
|
|
||||||
"https://raw.githubusercontent.com/yhirose/cpp-httplib/refs/tags/v0.27.0/httplib.h": "vendor/cpp-httplib/httplib.h",
|
"https://raw.githubusercontent.com/yhirose/cpp-httplib/refs/tags/v0.28.0/httplib.h": "vendor/cpp-httplib/httplib.h",
|
||||||
}
|
}
|
||||||
|
|
||||||
for url, filename in vendor.items():
|
for url, filename in vendor.items():
|
||||||
|
|
|
||||||
|
|
@ -1087,22 +1087,30 @@ int getaddrinfo_with_timeout(const char *node, const char *service,
|
||||||
// Fallback implementation using thread-based timeout for other Unix systems
|
// Fallback implementation using thread-based timeout for other Unix systems
|
||||||
|
|
||||||
struct GetAddrInfoState {
|
struct GetAddrInfoState {
|
||||||
|
~GetAddrInfoState() {
|
||||||
|
if (info) { freeaddrinfo(info); }
|
||||||
|
}
|
||||||
|
|
||||||
std::mutex mutex;
|
std::mutex mutex;
|
||||||
std::condition_variable result_cv;
|
std::condition_variable result_cv;
|
||||||
bool completed = false;
|
bool completed = false;
|
||||||
int result = EAI_SYSTEM;
|
int result = EAI_SYSTEM;
|
||||||
std::string node = node;
|
std::string node;
|
||||||
std::string service = service;
|
std::string service;
|
||||||
struct addrinfo hints = hints;
|
struct addrinfo hints;
|
||||||
struct addrinfo *info = nullptr;
|
struct addrinfo *info = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Allocate on the heap, so the resolver thread can keep using the data.
|
// Allocate on the heap, so the resolver thread can keep using the data.
|
||||||
auto state = std::make_shared<GetAddrInfoState>();
|
auto state = std::make_shared<GetAddrInfoState>();
|
||||||
|
state->node = node;
|
||||||
|
state->service = service;
|
||||||
|
state->hints = *hints;
|
||||||
|
|
||||||
std::thread resolve_thread([=]() {
|
std::thread resolve_thread([state]() {
|
||||||
auto thread_result = getaddrinfo(
|
auto thread_result =
|
||||||
state->node.c_str(), state->service.c_str(), hints, &state->info);
|
getaddrinfo(state->node.c_str(), state->service.c_str(), &state->hints,
|
||||||
|
&state->info);
|
||||||
|
|
||||||
std::lock_guard<std::mutex> lock(state->mutex);
|
std::lock_guard<std::mutex> lock(state->mutex);
|
||||||
state->result = thread_result;
|
state->result = thread_result;
|
||||||
|
|
@ -1120,6 +1128,7 @@ int getaddrinfo_with_timeout(const char *node, const char *service,
|
||||||
// Operation completed within timeout
|
// Operation completed within timeout
|
||||||
resolve_thread.join();
|
resolve_thread.join();
|
||||||
*res = state->info;
|
*res = state->info;
|
||||||
|
state->info = nullptr; // Pass ownership to caller
|
||||||
return state->result;
|
return state->result;
|
||||||
} else {
|
} else {
|
||||||
// Timeout occurred
|
// Timeout occurred
|
||||||
|
|
@ -4970,7 +4979,8 @@ bool Server::write_response_core(Stream &strm, bool close_connection,
|
||||||
if (need_apply_ranges) { apply_ranges(req, res, content_type, boundary); }
|
if (need_apply_ranges) { apply_ranges(req, res, content_type, boundary); }
|
||||||
|
|
||||||
// Prepare additional headers
|
// Prepare additional headers
|
||||||
if (close_connection || req.get_header_value("Connection") == "close") {
|
if (close_connection || req.get_header_value("Connection") == "close" ||
|
||||||
|
400 <= res.status) { // Don't leave connections open after errors
|
||||||
res.set_header("Connection", "close");
|
res.set_header("Connection", "close");
|
||||||
} else {
|
} else {
|
||||||
std::string s = "timeout=";
|
std::string s = "timeout=";
|
||||||
|
|
@ -5173,7 +5183,11 @@ bool Server::read_content_core(
|
||||||
size_t /*len*/) { return receiver(buf, n); };
|
size_t /*len*/) { return receiver(buf, n); };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.method == "DELETE" && !req.has_header("Content-Length")) {
|
// RFC 7230 Section 3.3.3: If this is a request message and none of the above
|
||||||
|
// are true (no Transfer-Encoding and no Content-Length), then the message
|
||||||
|
// body length is zero (no message body is present).
|
||||||
|
if (!req.has_header("Content-Length") &&
|
||||||
|
!detail::is_chunked_transfer_encoding(req.headers)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5681,8 +5695,6 @@ Server::process_request(Stream &strm, const std::string &remote_addr,
|
||||||
|
|
||||||
// Check if the request URI doesn't exceed the limit
|
// Check if the request URI doesn't exceed the limit
|
||||||
if (req.target.size() > CPPHTTPLIB_REQUEST_URI_MAX_LENGTH) {
|
if (req.target.size() > CPPHTTPLIB_REQUEST_URI_MAX_LENGTH) {
|
||||||
Headers dummy;
|
|
||||||
detail::read_headers(strm, dummy);
|
|
||||||
res.status = StatusCode::UriTooLong_414;
|
res.status = StatusCode::UriTooLong_414;
|
||||||
output_error_log(Error::ExceedUriMaxLength, &req);
|
output_error_log(Error::ExceedUriMaxLength, &req);
|
||||||
return write_response(strm, close_connection, req, res);
|
return write_response(strm, close_connection, req, res);
|
||||||
|
|
@ -6666,11 +6678,13 @@ bool ClientImpl::write_request(Stream &strm, Request &req,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> ClientImpl::send_with_content_provider(
|
std::unique_ptr<Response>
|
||||||
|
ClientImpl::send_with_content_provider_and_receiver(
|
||||||
Request &req, const char *body, size_t content_length,
|
Request &req, const char *body, size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
ContentProviderWithoutLength content_provider_without_length,
|
ContentProviderWithoutLength content_provider_without_length,
|
||||||
const std::string &content_type, Error &error) {
|
const std::string &content_type, ContentReceiver content_receiver,
|
||||||
|
Error &error) {
|
||||||
if (!content_type.empty()) { req.set_header("Content-Type", content_type); }
|
if (!content_type.empty()) { req.set_header("Content-Type", content_type); }
|
||||||
|
|
||||||
#ifdef CPPHTTPLIB_ZLIB_SUPPORT
|
#ifdef CPPHTTPLIB_ZLIB_SUPPORT
|
||||||
|
|
@ -6743,15 +6757,24 @@ std::unique_ptr<Response> ClientImpl::send_with_content_provider(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (content_receiver) {
|
||||||
|
req.content_receiver =
|
||||||
|
[content_receiver](const char *data, size_t data_length,
|
||||||
|
size_t /*offset*/, size_t /*total_length*/) {
|
||||||
|
return content_receiver(data, data_length);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
auto res = detail::make_unique<Response>();
|
auto res = detail::make_unique<Response>();
|
||||||
return send(req, *res, error) ? std::move(res) : nullptr;
|
return send(req, *res, error) ? std::move(res) : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::send_with_content_provider(
|
Result ClientImpl::send_with_content_provider_and_receiver(
|
||||||
const std::string &method, const std::string &path, const Headers &headers,
|
const std::string &method, const std::string &path, const Headers &headers,
|
||||||
const char *body, size_t content_length, ContentProvider content_provider,
|
const char *body, size_t content_length, ContentProvider content_provider,
|
||||||
ContentProviderWithoutLength content_provider_without_length,
|
ContentProviderWithoutLength content_provider_without_length,
|
||||||
const std::string &content_type, UploadProgress progress) {
|
const std::string &content_type, ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
Request req;
|
Request req;
|
||||||
req.method = method;
|
req.method = method;
|
||||||
req.headers = headers;
|
req.headers = headers;
|
||||||
|
|
@ -6763,9 +6786,10 @@ Result ClientImpl::send_with_content_provider(
|
||||||
|
|
||||||
auto error = Error::Success;
|
auto error = Error::Success;
|
||||||
|
|
||||||
auto res = send_with_content_provider(
|
auto res = send_with_content_provider_and_receiver(
|
||||||
req, body, content_length, std::move(content_provider),
|
req, body, content_length, std::move(content_provider),
|
||||||
std::move(content_provider_without_length), content_type, error);
|
std::move(content_provider_without_length), content_type,
|
||||||
|
std::move(content_receiver), error);
|
||||||
|
|
||||||
#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
|
#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
|
||||||
return Result{std::move(res), error, std::move(req.headers), last_ssl_error_,
|
return Result{std::move(res), error, std::move(req.headers), last_ssl_error_,
|
||||||
|
|
@ -7094,6 +7118,15 @@ Result ClientImpl::Post(const std::string &path, size_t content_length,
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Post(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Post(path, Headers(), content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path,
|
Result ClientImpl::Post(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -7102,6 +7135,15 @@ Result ClientImpl::Post(const std::string &path,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Post(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Post(path, Headers(), std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
const Params ¶ms) {
|
const Params ¶ms) {
|
||||||
auto query = detail::params_to_query_str(params);
|
auto query = detail::params_to_query_str(params);
|
||||||
|
|
@ -7142,17 +7184,18 @@ Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
const char *body, size_t content_length,
|
const char *body, size_t content_length,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("POST", path, headers, body, content_length,
|
return send_with_content_provider_and_receiver(
|
||||||
nullptr, nullptr, content_type, progress);
|
"POST", path, headers, body, content_length, nullptr, nullptr,
|
||||||
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
const std::string &body,
|
const std::string &body,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("POST", path, headers, body.data(),
|
return send_with_content_provider_and_receiver(
|
||||||
body.size(), nullptr, nullptr, content_type,
|
"POST", path, headers, body.data(), body.size(), nullptr, nullptr,
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7160,18 +7203,40 @@ Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("POST", path, headers, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
content_length, std::move(content_provider),
|
"POST", path, headers, nullptr, content_length,
|
||||||
nullptr, content_type, progress);
|
std::move(content_provider), nullptr, content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result 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) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"POST", path, headers, nullptr, content_length,
|
||||||
|
std::move(content_provider), nullptr, content_type,
|
||||||
|
std::move(content_receiver), std::move(progress));
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("POST", path, headers, nullptr, 0, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
std::move(content_provider), content_type,
|
"POST", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
DownloadProgress progress) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"POST", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), std::move(progress));
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7181,10 +7246,10 @@ Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
const auto &boundary = detail::make_multipart_data_boundary();
|
const auto &boundary = detail::make_multipart_data_boundary();
|
||||||
const auto &content_type =
|
const auto &content_type =
|
||||||
detail::serialize_multipart_formdata_get_content_type(boundary);
|
detail::serialize_multipart_formdata_get_content_type(boundary);
|
||||||
return send_with_content_provider(
|
return send_with_content_provider_and_receiver(
|
||||||
"POST", path, headers, nullptr, 0, nullptr,
|
"POST", path, headers, nullptr, 0, nullptr,
|
||||||
get_multipart_content_provider(boundary, items, provider_items),
|
get_multipart_content_provider(boundary, items, provider_items),
|
||||||
content_type, progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7246,6 +7311,15 @@ Result ClientImpl::Put(const std::string &path, size_t content_length,
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Put(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Put(path, Headers(), content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path,
|
Result ClientImpl::Put(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -7254,6 +7328,15 @@ Result ClientImpl::Put(const std::string &path,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Put(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Put(path, Headers(), std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
const Params ¶ms) {
|
const Params ¶ms) {
|
||||||
auto query = detail::params_to_query_str(params);
|
auto query = detail::params_to_query_str(params);
|
||||||
|
|
@ -7294,17 +7377,18 @@ Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
const char *body, size_t content_length,
|
const char *body, size_t content_length,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PUT", path, headers, body, content_length,
|
return send_with_content_provider_and_receiver(
|
||||||
nullptr, nullptr, content_type, progress);
|
"PUT", path, headers, body, content_length, nullptr, nullptr,
|
||||||
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
const std::string &body,
|
const std::string &body,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PUT", path, headers, body.data(),
|
return send_with_content_provider_and_receiver(
|
||||||
body.size(), nullptr, nullptr, content_type,
|
"PUT", path, headers, body.data(), body.size(), nullptr, nullptr,
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7312,18 +7396,40 @@ Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PUT", path, headers, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
content_length, std::move(content_provider),
|
"PUT", path, headers, nullptr, content_length,
|
||||||
nullptr, content_type, progress);
|
std::move(content_provider), nullptr, content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result 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) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"PUT", path, headers, nullptr, content_length,
|
||||||
|
std::move(content_provider), nullptr, content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PUT", path, headers, nullptr, 0, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
std::move(content_provider), content_type,
|
"PUT", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"PUT", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7333,10 +7439,10 @@ Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
const auto &boundary = detail::make_multipart_data_boundary();
|
const auto &boundary = detail::make_multipart_data_boundary();
|
||||||
const auto &content_type =
|
const auto &content_type =
|
||||||
detail::serialize_multipart_formdata_get_content_type(boundary);
|
detail::serialize_multipart_formdata_get_content_type(boundary);
|
||||||
return send_with_content_provider(
|
return send_with_content_provider_and_receiver(
|
||||||
"PUT", path, headers, nullptr, 0, nullptr,
|
"PUT", path, headers, nullptr, 0, nullptr,
|
||||||
get_multipart_content_provider(boundary, items, provider_items),
|
get_multipart_content_provider(boundary, items, provider_items),
|
||||||
content_type, progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7400,6 +7506,15 @@ Result ClientImpl::Patch(const std::string &path, size_t content_length,
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Patch(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Patch(path, Headers(), content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path,
|
Result ClientImpl::Patch(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -7408,6 +7523,15 @@ Result ClientImpl::Patch(const std::string &path,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Patch(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return Patch(path, Headers(), std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
const Params ¶ms) {
|
const Params ¶ms) {
|
||||||
auto query = detail::params_to_query_str(params);
|
auto query = detail::params_to_query_str(params);
|
||||||
|
|
@ -7448,18 +7572,18 @@ Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
const char *body, size_t content_length,
|
const char *body, size_t content_length,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PATCH", path, headers, body,
|
return send_with_content_provider_and_receiver(
|
||||||
content_length, nullptr, nullptr,
|
"PATCH", path, headers, body, content_length, nullptr, nullptr,
|
||||||
content_type, progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
const std::string &body,
|
const std::string &body,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PATCH", path, headers, body.data(),
|
return send_with_content_provider_and_receiver(
|
||||||
body.size(), nullptr, nullptr, content_type,
|
"PATCH", path, headers, body.data(), body.size(), nullptr, nullptr,
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7467,18 +7591,40 @@ Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PATCH", path, headers, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
content_length, std::move(content_provider),
|
"PATCH", path, headers, nullptr, content_length,
|
||||||
nullptr, content_type, progress);
|
std::move(content_provider), nullptr, content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result 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) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"PATCH", path, headers, nullptr, content_length,
|
||||||
|
std::move(content_provider), nullptr, content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return send_with_content_provider("PATCH", path, headers, nullptr, 0, nullptr,
|
return send_with_content_provider_and_receiver(
|
||||||
std::move(content_provider), content_type,
|
"PATCH", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
progress);
|
content_type, nullptr, progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return send_with_content_provider_and_receiver(
|
||||||
|
"PATCH", path, headers, nullptr, 0, nullptr, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -7488,10 +7634,10 @@ Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
const auto &boundary = detail::make_multipart_data_boundary();
|
const auto &boundary = detail::make_multipart_data_boundary();
|
||||||
const auto &content_type =
|
const auto &content_type =
|
||||||
detail::serialize_multipart_formdata_get_content_type(boundary);
|
detail::serialize_multipart_formdata_get_content_type(boundary);
|
||||||
return send_with_content_provider(
|
return send_with_content_provider_and_receiver(
|
||||||
"PATCH", path, headers, nullptr, 0, nullptr,
|
"PATCH", path, headers, nullptr, 0, nullptr,
|
||||||
get_multipart_content_provider(boundary, items, provider_items),
|
get_multipart_content_provider(boundary, items, provider_items),
|
||||||
content_type, progress);
|
content_type, nullptr, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
|
|
@ -8883,12 +9029,28 @@ Result Client::Post(const std::string &path, size_t content_length,
|
||||||
return cli_->Post(path, content_length, std::move(content_provider),
|
return cli_->Post(path, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Post(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Post(path, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Post(const std::string &path,
|
Result Client::Post(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return cli_->Post(path, std::move(content_provider), content_type, progress);
|
return cli_->Post(path, std::move(content_provider), content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Post(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Post(path, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Post(const std::string &path, const Headers &headers,
|
Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
|
|
@ -8897,6 +9059,15 @@ Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
return cli_->Post(path, headers, content_length, std::move(content_provider),
|
return cli_->Post(path, headers, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::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) {
|
||||||
|
return cli_->Post(path, headers, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Post(const std::string &path, const Headers &headers,
|
Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -8904,6 +9075,14 @@ Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
return cli_->Post(path, headers, std::move(content_provider), content_type,
|
return cli_->Post(path, headers, std::move(content_provider), content_type,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
DownloadProgress progress) {
|
||||||
|
return cli_->Post(path, headers, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Post(const std::string &path, const Params ¶ms) {
|
Result Client::Post(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Post(path, params);
|
return cli_->Post(path, params);
|
||||||
}
|
}
|
||||||
|
|
@ -8938,8 +9117,8 @@ Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
ContentReceiver content_receiver,
|
ContentReceiver content_receiver,
|
||||||
DownloadProgress progress) {
|
DownloadProgress progress) {
|
||||||
return cli_->Post(path, headers, body, content_type, content_receiver,
|
return cli_->Post(path, headers, body, content_type,
|
||||||
progress);
|
std::move(content_receiver), progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result Client::Put(const std::string &path) { return cli_->Put(path); }
|
Result Client::Put(const std::string &path) { return cli_->Put(path); }
|
||||||
|
|
@ -8976,12 +9155,28 @@ Result Client::Put(const std::string &path, size_t content_length,
|
||||||
return cli_->Put(path, content_length, std::move(content_provider),
|
return cli_->Put(path, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Put(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Put(path, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Put(const std::string &path,
|
Result Client::Put(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return cli_->Put(path, std::move(content_provider), content_type, progress);
|
return cli_->Put(path, std::move(content_provider), content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Put(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Put(path, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Put(const std::string &path, const Headers &headers,
|
Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
|
|
@ -8990,6 +9185,15 @@ Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
return cli_->Put(path, headers, content_length, std::move(content_provider),
|
return cli_->Put(path, headers, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::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) {
|
||||||
|
return cli_->Put(path, headers, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Put(const std::string &path, const Headers &headers,
|
Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -8997,6 +9201,14 @@ Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
return cli_->Put(path, headers, std::move(content_provider), content_type,
|
return cli_->Put(path, headers, std::move(content_provider), content_type,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Put(path, headers, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Put(const std::string &path, const Params ¶ms) {
|
Result Client::Put(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Put(path, params);
|
return cli_->Put(path, params);
|
||||||
}
|
}
|
||||||
|
|
@ -9072,12 +9284,28 @@ Result Client::Patch(const std::string &path, size_t content_length,
|
||||||
return cli_->Patch(path, content_length, std::move(content_provider),
|
return cli_->Patch(path, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Patch(const std::string &path, size_t content_length,
|
||||||
|
ContentProvider content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Patch(path, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Patch(const std::string &path,
|
Result Client::Patch(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
UploadProgress progress) {
|
UploadProgress progress) {
|
||||||
return cli_->Patch(path, std::move(content_provider), content_type, progress);
|
return cli_->Patch(path, std::move(content_provider), content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Patch(const std::string &path,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Patch(path, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Patch(const std::string &path, const Headers &headers,
|
Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
|
|
@ -9086,6 +9314,15 @@ Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
return cli_->Patch(path, headers, content_length, std::move(content_provider),
|
return cli_->Patch(path, headers, content_length, std::move(content_provider),
|
||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
Result Client::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) {
|
||||||
|
return cli_->Patch(path, headers, content_length, std::move(content_provider),
|
||||||
|
content_type, std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Patch(const std::string &path, const Headers &headers,
|
Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
|
|
@ -9093,6 +9330,14 @@ Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
return cli_->Patch(path, headers, std::move(content_provider), content_type,
|
return cli_->Patch(path, headers, std::move(content_provider), content_type,
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
|
ContentProviderWithoutLength content_provider,
|
||||||
|
const std::string &content_type,
|
||||||
|
ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress) {
|
||||||
|
return cli_->Patch(path, headers, std::move(content_provider), content_type,
|
||||||
|
std::move(content_receiver), progress);
|
||||||
|
}
|
||||||
Result Client::Patch(const std::string &path, const Params ¶ms) {
|
Result Client::Patch(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Patch(path, params);
|
return cli_->Patch(path, params);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
#ifndef CPPHTTPLIB_HTTPLIB_H
|
#ifndef CPPHTTPLIB_HTTPLIB_H
|
||||||
#define CPPHTTPLIB_HTTPLIB_H
|
#define CPPHTTPLIB_HTTPLIB_H
|
||||||
|
|
||||||
#define CPPHTTPLIB_VERSION "0.27.0"
|
#define CPPHTTPLIB_VERSION "0.28.0"
|
||||||
#define CPPHTTPLIB_VERSION_NUM "0x001B00"
|
#define CPPHTTPLIB_VERSION_NUM "0x001C00"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Platform compatibility check
|
* Platform compatibility check
|
||||||
|
|
@ -257,6 +257,7 @@ using socklen_t = int;
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <resolv.h>
|
#include <resolv.h>
|
||||||
|
#undef _res // Undefine _res macro to avoid conflicts with user code (#2278)
|
||||||
#endif
|
#endif
|
||||||
#include <csignal>
|
#include <csignal>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
|
|
@ -1421,14 +1422,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Post(const std::string &path, const Params ¶ms);
|
||||||
Result Post(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
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);
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Post(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
@ -1439,14 +1444,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Put(const std::string &path, const Params ¶ms);
|
||||||
Result Put(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
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);
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Put(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
@ -1457,14 +1466,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Patch(const std::string &path, const Params ¶ms);
|
||||||
Result Patch(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
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, 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 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, 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, 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, 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 ¶ms);
|
Result Patch(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
@ -1712,17 +1725,19 @@ private:
|
||||||
template <typename ClientType> void setup_redirect_client(ClientType &client);
|
template <typename ClientType> void setup_redirect_client(ClientType &client);
|
||||||
bool handle_request(Stream &strm, Request &req, Response &res,
|
bool handle_request(Stream &strm, Request &req, Response &res,
|
||||||
bool close_connection, Error &error);
|
bool close_connection, Error &error);
|
||||||
std::unique_ptr<Response> send_with_content_provider(
|
std::unique_ptr<Response> send_with_content_provider_and_receiver(
|
||||||
Request &req, const char *body, size_t content_length,
|
Request &req, const char *body, size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
ContentProviderWithoutLength content_provider_without_length,
|
ContentProviderWithoutLength content_provider_without_length,
|
||||||
const std::string &content_type, Error &error);
|
const std::string &content_type, ContentReceiver content_receiver,
|
||||||
Result send_with_content_provider(
|
Error &error);
|
||||||
|
Result send_with_content_provider_and_receiver(
|
||||||
const std::string &method, const std::string &path,
|
const std::string &method, const std::string &path,
|
||||||
const Headers &headers, const char *body, size_t content_length,
|
const Headers &headers, const char *body, size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
ContentProviderWithoutLength content_provider_without_length,
|
ContentProviderWithoutLength content_provider_without_length,
|
||||||
const std::string &content_type, UploadProgress progress);
|
const std::string &content_type, ContentReceiver content_receiver,
|
||||||
|
UploadProgress progress);
|
||||||
ContentProviderWithoutLength get_multipart_content_provider(
|
ContentProviderWithoutLength get_multipart_content_provider(
|
||||||
const std::string &boundary, const UploadFormDataItems &items,
|
const std::string &boundary, const UploadFormDataItems &items,
|
||||||
const FormDataProviderItems &provider_items) const;
|
const FormDataProviderItems &provider_items) const;
|
||||||
|
|
@ -1775,14 +1790,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Post(const std::string &path, const Params ¶ms);
|
||||||
Result Post(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
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);
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Post(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
@ -1793,14 +1812,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Put(const std::string &path, const Params ¶ms);
|
||||||
Result Put(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
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);
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Put(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
@ -1811,14 +1834,18 @@ public:
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Patch(const std::string &path, const Params ¶ms);
|
||||||
Result Patch(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
Result Patch(const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr);
|
||||||
Result Patch(const std::string &path, const Headers &headers);
|
Result Patch(const std::string &path, const Headers &headers);
|
||||||
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 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, 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, 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, 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 ¶ms);
|
Result Patch(const std::string &path, const Headers &headers, const Params ¶ms);
|
||||||
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, 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 std::string &boundary, UploadProgress progress = nullptr);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue