@@ -1411,13 +1411,15 @@ class ClientImpl {
1411
1411
1412
1412
Result Post (const std::string &path);
1413
1413
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 );
1414
1415
Result Post (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
1415
1416
Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1416
1417
Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1417
1418
Result Post (const std::string &path, const Params ¶ms);
1418
1419
Result Post (const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr );
1419
1420
Result Post (const std::string &path, const Headers &headers);
1420
1421
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 );
1421
1423
Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
1422
1424
Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1423
1425
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 {
1767
1769
1768
1770
Result Post (const std::string &path);
1769
1771
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 );
1770
1773
Result Post (const std::string &path, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
1771
1774
Result Post (const std::string &path, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1772
1775
Result Post (const std::string &path, ContentProviderWithoutLength content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1773
1776
Result Post (const std::string &path, const Params ¶ms);
1774
1777
Result Post (const std::string &path, const UploadFormDataItems &items, UploadProgress progress = nullptr );
1775
1778
Result Post (const std::string &path, const Headers &headers);
1776
1779
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 );
1777
1781
Result Post (const std::string &path, const Headers &headers, const std::string &body, const std::string &content_type, UploadProgress progress = nullptr );
1778
1782
Result Post (const std::string &path, const Headers &headers, size_t content_length, ContentProvider content_provider, const std::string &content_type, UploadProgress progress = nullptr );
1779
1783
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,
9773
9777
nullptr , nullptr , content_type, progress);
9774
9778
}
9775
9779
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
+
9776
9789
inline Result ClientImpl::Post (const std::string &path, const Headers &headers,
9777
9790
const std::string &body,
9778
9791
const std::string &content_type,
@@ -9840,6 +9853,32 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
9840
9853
return send_ (std::move (req));
9841
9854
}
9842
9855
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
+
9843
9882
inline Result ClientImpl::Put (const std::string &path) {
9844
9883
return Put (path, std::string (), std::string ());
9845
9884
}
@@ -11402,13 +11441,31 @@ inline Result Client::Post(const std::string &path, const char *body,
11402
11441
UploadProgress progress) {
11403
11442
return cli_->Post (path, body, content_length, content_type, progress);
11404
11443
}
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
+ }
11405
11453
inline Result Client::Post (const std::string &path, const Headers &headers,
11406
11454
const char *body, size_t content_length,
11407
11455
const std::string &content_type,
11408
11456
UploadProgress progress) {
11409
11457
return cli_->Post (path, headers, body, content_length, content_type,
11410
11458
progress);
11411
11459
}
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
+ }
11412
11469
inline Result Client::Post (const std::string &path, const std::string &body,
11413
11470
const std::string &content_type,
11414
11471
UploadProgress progress) {
0 commit comments