@@ -1411,13 +1411,15 @@ class ClientImpl {
14111411
14121412 Result Post (const std::string &path);
14131413 Result Post (const std::string &path, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress = nullptr );
1414+ Result Post (const std::string &path, const char *body, size_t content_length, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress = nullptr );
14141415 Result Post (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
14151416 Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
14161417 Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
14171418 Result Post (const std::string &path, const Params ¶ms);
14181419 Result Post (const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr );
14191420 Result Post (const std::string &path, const Headers &headers);
14201421 Result Post (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress = nullptr );
1422+ Result Post (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress = nullptr );
14211423 Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
14221424 Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
14231425 Result Post (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
@@ -1767,13 +1769,15 @@ class Client {
17671769
17681770 Result Post (const std::string &path);
17691771 Result Post (const std::string &path, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress = nullptr );
1772+ Result Post (const std::string &path, const char *body, size_t content_length, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress = nullptr );
17701773 Result Post (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
17711774 Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
17721775 Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
17731776 Result Post (const std::string &path, const Params ¶ms);
17741777 Result Post (const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr );
17751778 Result Post (const std::string &path, const Headers &headers);
17761779 Result Post (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, UploadProgress progress = nullptr );
1780+ Result Post (const std::string &path, const Headers &headers, const char *body, size_t content_length, const std::string &content_type, ContentReceiver content_receiver, DownloadProgress progress = nullptr );
17771781 Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
17781782 Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
17791783 Result Post (const std::string &path, const Headers &headers, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
@@ -9773,6 +9777,15 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
97739777 nullptr , nullptr , content_type, progress);
97749778}
97759779
9780+ inline Result ClientImpl::Post (const std::string &path, const char *body,
9781+ size_t content_length,
9782+ const std::string &content_type,
9783+ ContentReceiver content_receiver,
9784+ DownloadProgress progress) {
9785+ return Post (path, Headers (), body, content_length, content_type,
9786+ content_receiver, progress);
9787+ }
9788+
97769789inline Result ClientImpl::Post (const std::string &path, const Headers &headers,
97779790 const std::string &body,
97789791 const std::string &content_type,
@@ -9840,6 +9853,32 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
98409853 return send_ (std::move (req));
98419854}
98429855
9856+ inline Result ClientImpl::Post (const std::string &path, const Headers &headers,
9857+ const char *body, size_t content_length,
9858+ const std::string &content_type,
9859+ ContentReceiver content_receiver,
9860+ DownloadProgress progress) {
9861+ Request req;
9862+ req.method = " POST" ;
9863+ req.path = path;
9864+ req.headers = headers;
9865+ req.body .assign (body, content_length);
9866+ req.content_receiver =
9867+ [content_receiver](const char *data, size_t data_length,
9868+ size_t /* offset*/ , size_t /* total_length*/ ) {
9869+ return content_receiver (data, data_length);
9870+ };
9871+ req.download_progress = std::move (progress);
9872+
9873+ if (max_timeout_msec_ > 0 ) {
9874+ req.start_time_ = std::chrono::steady_clock::now ();
9875+ }
9876+
9877+ if (!content_type.empty ()) { req.set_header (" Content-Type" , content_type); }
9878+
9879+ return send_ (std::move (req));
9880+ }
9881+
98439882inline Result ClientImpl::Put (const std::string &path) {
98449883 return Put (path, std::string (), std::string ());
98459884}
@@ -11402,13 +11441,31 @@ inline Result Client::Post(const std::string &path, const char *body,
1140211441 UploadProgress progress) {
1140311442 return cli_->Post (path, body, content_length, content_type, progress);
1140411443}
11444+
11445+ inline Result Client::Post (const std::string &path, const char *body,
11446+ size_t content_length,
11447+ const std::string &content_type,
11448+ ContentReceiver content_receiver,
11449+ DownloadProgress progress) {
11450+ return cli_->Post (path, body, content_length, content_type, content_receiver,
11451+ progress);
11452+ }
1140511453inline Result Client::Post (const std::string &path, const Headers &headers,
1140611454 const char *body, size_t content_length,
1140711455 const std::string &content_type,
1140811456 UploadProgress progress) {
1140911457 return cli_->Post (path, headers, body, content_length, content_type,
1141011458 progress);
1141111459}
11460+
11461+ inline Result Client::Post (const std::string &path, const Headers &headers,
11462+ const char *body, size_t content_length,
11463+ const std::string &content_type,
11464+ ContentReceiver content_receiver,
11465+ DownloadProgress progress) {
11466+ return cli_->Post (path, headers, body, content_length, content_type,
11467+ content_receiver, progress);
11468+ }
1141211469inline Result Client::Post (const std::string &path, const std::string &body,
1141311470 const std::string &content_type,
1141411471 UploadProgress progress) {
0 commit comments