You've already forked cpp-httplib
Add Client::Post with both content provider and receiver (#2268)
Co-authored-by: Clarkok Zhang <clarkok8@gmail.com>
This commit is contained in:
363
httplib.h
363
httplib.h
@@ -1421,14 +1421,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 +1443,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 +1465,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 +1724,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 +1789,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 +1811,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 +1833,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);
|
||||||
@@ -9387,11 +9413,13 @@ inline bool ClientImpl::write_request(Stream &strm, Request &req,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline std::unique_ptr<Response> ClientImpl::send_with_content_provider(
|
inline 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
|
||||||
@@ -9464,15 +9492,24 @@ inline 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::send_with_content_provider(
|
inline 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;
|
||||||
@@ -9484,9 +9521,10 @@ inline 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_,
|
||||||
@@ -9815,6 +9853,15 @@ inline Result ClientImpl::Post(const std::string &path, size_t content_length,
|
|||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path,
|
inline Result ClientImpl::Post(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
@@ -9823,6 +9870,15 @@ inline Result ClientImpl::Post(const std::string &path,
|
|||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
@@ -9863,17 +9919,18 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
@@ -9881,18 +9938,40 @@ inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
@@ -9902,10 +9981,10 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
|
||||||
@@ -9967,6 +10046,15 @@ inline Result ClientImpl::Put(const std::string &path, size_t content_length,
|
|||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path,
|
inline Result ClientImpl::Put(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
@@ -9975,6 +10063,15 @@ inline Result ClientImpl::Put(const std::string &path,
|
|||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
@@ -10015,17 +10112,18 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
@@ -10033,18 +10131,40 @@ inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
@@ -10054,10 +10174,10 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
|
||||||
@@ -10121,6 +10241,15 @@ inline Result ClientImpl::Patch(const std::string &path, size_t content_length,
|
|||||||
content_type, progress);
|
content_type, progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path,
|
inline Result ClientImpl::Patch(const std::string &path,
|
||||||
ContentProviderWithoutLength content_provider,
|
ContentProviderWithoutLength content_provider,
|
||||||
const std::string &content_type,
|
const std::string &content_type,
|
||||||
@@ -10129,6 +10258,15 @@ inline Result ClientImpl::Patch(const std::string &path,
|
|||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
@@ -10169,18 +10307,18 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
@@ -10188,18 +10326,40 @@ inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
@@ -10209,10 +10369,10 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
inline Result ClientImpl::Patch(const std::string &path, const Headers &headers,
|
||||||
@@ -11604,12 +11764,28 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Post(const std::string &path,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Post(const std::string &path, const Headers &headers,
|
inline Result Client::Post(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
@@ -11618,6 +11794,15 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Post(const std::string &path, const Headers &headers,
|
inline 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,
|
||||||
@@ -11625,6 +11810,14 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Post(const std::string &path, const Params ¶ms) {
|
inline Result Client::Post(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Post(path, params);
|
return cli_->Post(path, params);
|
||||||
}
|
}
|
||||||
@@ -11659,8 +11852,8 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result Client::Put(const std::string &path) { return cli_->Put(path); }
|
inline Result Client::Put(const std::string &path) { return cli_->Put(path); }
|
||||||
@@ -11697,12 +11890,28 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Put(const std::string &path,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Put(const std::string &path, const Headers &headers,
|
inline Result Client::Put(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
@@ -11711,6 +11920,15 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Put(const std::string &path, const Headers &headers,
|
inline 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,
|
||||||
@@ -11718,6 +11936,14 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Put(const std::string &path, const Params ¶ms) {
|
inline Result Client::Put(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Put(path, params);
|
return cli_->Put(path, params);
|
||||||
}
|
}
|
||||||
@@ -11793,12 +12019,28 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Patch(const std::string &path,
|
inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Patch(const std::string &path, const Headers &headers,
|
inline Result Client::Patch(const std::string &path, const Headers &headers,
|
||||||
size_t content_length,
|
size_t content_length,
|
||||||
ContentProvider content_provider,
|
ContentProvider content_provider,
|
||||||
@@ -11807,6 +12049,15 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Patch(const std::string &path, const Headers &headers,
|
inline 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,
|
||||||
@@ -11814,6 +12065,14 @@ inline 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);
|
||||||
}
|
}
|
||||||
|
inline 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);
|
||||||
|
}
|
||||||
inline Result Client::Patch(const std::string &path, const Params ¶ms) {
|
inline Result Client::Patch(const std::string &path, const Params ¶ms) {
|
||||||
return cli_->Patch(path, params);
|
return cli_->Patch(path, params);
|
||||||
}
|
}
|
||||||
|
|||||||
121
test/test.cc
121
test/test.cc
@@ -3423,6 +3423,39 @@ protected:
|
|||||||
EXPECT_EQ(req.body, LARGE_DATA);
|
EXPECT_EQ(req.body, LARGE_DATA);
|
||||||
res.set_content(req.body, "text/plain");
|
res.set_content(req.body, "text/plain");
|
||||||
})
|
})
|
||||||
|
.Post("/post-loopback",
|
||||||
|
[&](const Request &req, Response &res,
|
||||||
|
ContentReader const &content_reader) {
|
||||||
|
std::string body;
|
||||||
|
content_reader([&](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
res.set_content(body, "text/plain");
|
||||||
|
})
|
||||||
|
.Put("/put-loopback",
|
||||||
|
[&](const Request &req, Response &res,
|
||||||
|
ContentReader const &content_reader) {
|
||||||
|
std::string body;
|
||||||
|
content_reader([&](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
res.set_content(body, "text/plain");
|
||||||
|
})
|
||||||
|
.Patch("/patch-loopback",
|
||||||
|
[&](const Request &req, Response &res,
|
||||||
|
ContentReader const &content_reader) {
|
||||||
|
std::string body;
|
||||||
|
content_reader([&](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
res.set_content(body, "text/plain");
|
||||||
|
})
|
||||||
.Put("/empty-no-content-type",
|
.Put("/empty-no-content-type",
|
||||||
[&](const Request &req, Response &res) {
|
[&](const Request &req, Response &res) {
|
||||||
EXPECT_EQ(req.body, "");
|
EXPECT_EQ(req.body, "");
|
||||||
@@ -5183,6 +5216,94 @@ TEST_F(ServerTest, PostWithContentProviderWithoutLengthAbort) {
|
|||||||
EXPECT_EQ(Error::Canceled, res.error());
|
EXPECT_EQ(Error::Canceled, res.error());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(ServerTest, PostLoopBack) {
|
||||||
|
std::string body;
|
||||||
|
auto res = cli_.Post(
|
||||||
|
"/post-loopback", 9,
|
||||||
|
[](size_t /*offset*/, size_t length, DataSink &sink) {
|
||||||
|
EXPECT_EQ(9u, length);
|
||||||
|
sink.write("123", 3);
|
||||||
|
sink.write("456", 3);
|
||||||
|
sink.write("789", 3);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
"text/plain",
|
||||||
|
[&body](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ASSERT_TRUE(res);
|
||||||
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
|
EXPECT_EQ("123456789", body);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ServerTest, PutLoopBack) {
|
||||||
|
std::string body;
|
||||||
|
auto res = cli_.Put(
|
||||||
|
"/put-loopback", 9,
|
||||||
|
[](size_t /*offset*/, size_t length, DataSink &sink) {
|
||||||
|
EXPECT_EQ(9u, length);
|
||||||
|
sink.write("123", 3);
|
||||||
|
sink.write("456", 3);
|
||||||
|
sink.write("789", 3);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
"text/plain",
|
||||||
|
[&body](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ASSERT_TRUE(res);
|
||||||
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
|
EXPECT_EQ("123456789", body);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ServerTest, PatchLoopBack) {
|
||||||
|
std::string body;
|
||||||
|
auto res = cli_.Patch(
|
||||||
|
"/patch-loopback", 9,
|
||||||
|
[](size_t /*offset*/, size_t length, DataSink &sink) {
|
||||||
|
EXPECT_EQ(9u, length);
|
||||||
|
sink.write("123", 3);
|
||||||
|
sink.write("456", 3);
|
||||||
|
sink.write("789", 3);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
"text/plain",
|
||||||
|
[&body](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ASSERT_TRUE(res);
|
||||||
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
|
EXPECT_EQ("123456789", body);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ServerTest, PostLoopBackWithoutRequestContentLength) {
|
||||||
|
std::string body;
|
||||||
|
auto res = cli_.Post(
|
||||||
|
"/post-loopback",
|
||||||
|
[](size_t /*offset*/, DataSink &sink) {
|
||||||
|
sink.write("123", 3);
|
||||||
|
sink.write("456", 3);
|
||||||
|
sink.write("789", 3);
|
||||||
|
sink.done();
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
"text/plain",
|
||||||
|
[&body](const char *data, size_t data_length) {
|
||||||
|
body.append(data, data_length);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
ASSERT_TRUE(res);
|
||||||
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
|
EXPECT_EQ("123456789", body);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CPPHTTPLIB_ZLIB_SUPPORT
|
#ifdef CPPHTTPLIB_ZLIB_SUPPORT
|
||||||
TEST_F(ServerTest, PutWithContentProviderWithGzip) {
|
TEST_F(ServerTest, PutWithContentProviderWithGzip) {
|
||||||
cli_.set_compress(true);
|
cli_.set_compress(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user