@@ -553,6 +553,15 @@ struct MultipartFormData {
553
553
using MultipartFormDataItems = std::vector<MultipartFormData>;
554
554
using MultipartFormDataMap = std::multimap<std::string, MultipartFormData>;
555
555
556
+ struct MultipartFormDataForClientInput {
557
+ std::string name;
558
+ std::string content;
559
+ std::string filename;
560
+ std::string content_type;
561
+ };
562
+ using MultipartFormDataItemsForClientInput =
563
+ std::vector<MultipartFormDataForClientInput>;
564
+
556
565
class DataSink {
557
566
public:
558
567
DataSink () : os(&sb_), sb_(*this ) {}
@@ -1330,13 +1339,15 @@ class ClientImpl {
1330
1339
const Params ¶ms);
1331
1340
Result Post (const std::string &path, const Headers &headers,
1332
1341
const Params ¶ms, Progress progress);
1333
- Result Post (const std::string &path, const MultipartFormDataItems &items);
1342
+ Result Post (const std::string &path,
1343
+ const MultipartFormDataItemsForClientInput &items);
1334
1344
Result Post (const std::string &path, const Headers &headers,
1335
- const MultipartFormDataItems &items);
1345
+ const MultipartFormDataItemsForClientInput &items);
1336
1346
Result Post (const std::string &path, const Headers &headers,
1337
- const MultipartFormDataItems &items, const std::string &boundary);
1347
+ const MultipartFormDataItemsForClientInput &items,
1348
+ const std::string &boundary);
1338
1349
Result Post (const std::string &path, const Headers &headers,
1339
- const MultipartFormDataItems &items,
1350
+ const MultipartFormDataItemsForClientInput &items,
1340
1351
const MultipartFormDataProviderItems &provider_items);
1341
1352
1342
1353
Result Put (const std::string &path);
@@ -1372,13 +1383,15 @@ class ClientImpl {
1372
1383
const Params ¶ms);
1373
1384
Result Put (const std::string &path, const Headers &headers,
1374
1385
const Params ¶ms, Progress progress);
1375
- Result Put (const std::string &path, const MultipartFormDataItems &items);
1386
+ Result Put (const std::string &path,
1387
+ const MultipartFormDataItemsForClientInput &items);
1376
1388
Result Put (const std::string &path, const Headers &headers,
1377
- const MultipartFormDataItems &items);
1389
+ const MultipartFormDataItemsForClientInput &items);
1378
1390
Result Put (const std::string &path, const Headers &headers,
1379
- const MultipartFormDataItems &items, const std::string &boundary);
1391
+ const MultipartFormDataItemsForClientInput &items,
1392
+ const std::string &boundary);
1380
1393
Result Put (const std::string &path, const Headers &headers,
1381
- const MultipartFormDataItems &items,
1394
+ const MultipartFormDataItemsForClientInput &items,
1382
1395
const MultipartFormDataProviderItems &provider_items);
1383
1396
1384
1397
Result Patch (const std::string &path);
@@ -1664,7 +1677,8 @@ class ClientImpl {
1664
1677
ContentProviderWithoutLength content_provider_without_length,
1665
1678
const std::string &content_type, Progress progress);
1666
1679
ContentProviderWithoutLength get_multipart_content_provider (
1667
- const std::string &boundary, const MultipartFormDataItems &items,
1680
+ const std::string &boundary,
1681
+ const MultipartFormDataItemsForClientInput &items,
1668
1682
const MultipartFormDataProviderItems &provider_items) const ;
1669
1683
1670
1684
std::string adjust_host_string (const std::string &host) const ;
@@ -1769,13 +1783,15 @@ class Client {
1769
1783
const Params ¶ms);
1770
1784
Result Post (const std::string &path, const Headers &headers,
1771
1785
const Params ¶ms, Progress progress);
1772
- Result Post (const std::string &path, const MultipartFormDataItems &items);
1786
+ Result Post (const std::string &path,
1787
+ const MultipartFormDataItemsForClientInput &items);
1773
1788
Result Post (const std::string &path, const Headers &headers,
1774
- const MultipartFormDataItems &items);
1789
+ const MultipartFormDataItemsForClientInput &items);
1775
1790
Result Post (const std::string &path, const Headers &headers,
1776
- const MultipartFormDataItems &items, const std::string &boundary);
1791
+ const MultipartFormDataItemsForClientInput &items,
1792
+ const std::string &boundary);
1777
1793
Result Post (const std::string &path, const Headers &headers,
1778
- const MultipartFormDataItems &items,
1794
+ const MultipartFormDataItemsForClientInput &items,
1779
1795
const MultipartFormDataProviderItems &provider_items);
1780
1796
1781
1797
Result Put (const std::string &path);
@@ -1811,13 +1827,15 @@ class Client {
1811
1827
const Params ¶ms);
1812
1828
Result Put (const std::string &path, const Headers &headers,
1813
1829
const Params ¶ms, Progress progress);
1814
- Result Put (const std::string &path, const MultipartFormDataItems &items);
1830
+ Result Put (const std::string &path,
1831
+ const MultipartFormDataItemsForClientInput &items);
1815
1832
Result Put (const std::string &path, const Headers &headers,
1816
- const MultipartFormDataItems &items);
1833
+ const MultipartFormDataItemsForClientInput &items);
1817
1834
Result Put (const std::string &path, const Headers &headers,
1818
- const MultipartFormDataItems &items, const std::string &boundary);
1835
+ const MultipartFormDataItemsForClientInput &items,
1836
+ const std::string &boundary);
1819
1837
Result Put (const std::string &path, const Headers &headers,
1820
- const MultipartFormDataItems &items,
1838
+ const MultipartFormDataItemsForClientInput &items,
1821
1839
const MultipartFormDataProviderItems &provider_items);
1822
1840
1823
1841
Result Patch (const std::string &path);
@@ -5331,7 +5349,7 @@ serialize_multipart_formdata_get_content_type(const std::string &boundary) {
5331
5349
}
5332
5350
5333
5351
inline std::string
5334
- serialize_multipart_formdata (const MultipartFormDataItems &items,
5352
+ serialize_multipart_formdata (const MultipartFormDataItemsForClientInput &items,
5335
5353
const std::string &boundary, bool finish = true ) {
5336
5354
std::string body;
5337
5355
@@ -8370,7 +8388,8 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req,
8370
8388
}
8371
8389
8372
8390
inline ContentProviderWithoutLength ClientImpl::get_multipart_content_provider (
8373
- const std::string &boundary, const MultipartFormDataItems &items,
8391
+ const std::string &boundary,
8392
+ const MultipartFormDataItemsForClientInput &items,
8374
8393
const MultipartFormDataProviderItems &provider_items) const {
8375
8394
size_t cur_item = 0 ;
8376
8395
size_t cur_start = 0 ;
@@ -8671,23 +8690,26 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
8671
8690
progress);
8672
8691
}
8673
8692
8674
- inline Result ClientImpl::Post (const std::string &path,
8675
- const MultipartFormDataItems &items) {
8693
+ inline Result
8694
+ ClientImpl::Post (const std::string &path,
8695
+ const MultipartFormDataItemsForClientInput &items) {
8676
8696
return Post (path, Headers (), items);
8677
8697
}
8678
8698
8679
- inline Result ClientImpl::Post (const std::string &path, const Headers &headers,
8680
- const MultipartFormDataItems &items) {
8699
+ inline Result
8700
+ ClientImpl::Post (const std::string &path, const Headers &headers,
8701
+ const MultipartFormDataItemsForClientInput &items) {
8681
8702
const auto &boundary = detail::make_multipart_data_boundary ();
8682
8703
const auto &content_type =
8683
8704
detail::serialize_multipart_formdata_get_content_type (boundary);
8684
8705
const auto &body = detail::serialize_multipart_formdata (items, boundary);
8685
8706
return Post (path, headers, body, content_type);
8686
8707
}
8687
8708
8688
- inline Result ClientImpl::Post (const std::string &path, const Headers &headers,
8689
- const MultipartFormDataItems &items,
8690
- const std::string &boundary) {
8709
+ inline Result
8710
+ ClientImpl::Post (const std::string &path, const Headers &headers,
8711
+ const MultipartFormDataItemsForClientInput &items,
8712
+ const std::string &boundary) {
8691
8713
if (!detail::is_multipart_boundary_chars_valid (boundary)) {
8692
8714
return Result{nullptr , Error::UnsupportedMultipartBoundaryChars};
8693
8715
}
@@ -8700,7 +8722,7 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
8700
8722
8701
8723
inline Result
8702
8724
ClientImpl::Post (const std::string &path, const Headers &headers,
8703
- const MultipartFormDataItems &items,
8725
+ const MultipartFormDataItemsForClientInput &items,
8704
8726
const MultipartFormDataProviderItems &provider_items) {
8705
8727
const auto &boundary = detail::make_multipart_data_boundary ();
8706
8728
const auto &content_type =
@@ -8811,13 +8833,15 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
8811
8833
progress);
8812
8834
}
8813
8835
8814
- inline Result ClientImpl::Put (const std::string &path,
8815
- const MultipartFormDataItems &items) {
8836
+ inline Result
8837
+ ClientImpl::Put (const std::string &path,
8838
+ const MultipartFormDataItemsForClientInput &items) {
8816
8839
return Put (path, Headers (), items);
8817
8840
}
8818
8841
8819
- inline Result ClientImpl::Put (const std::string &path, const Headers &headers,
8820
- const MultipartFormDataItems &items) {
8842
+ inline Result
8843
+ ClientImpl::Put (const std::string &path, const Headers &headers,
8844
+ const MultipartFormDataItemsForClientInput &items) {
8821
8845
const auto &boundary = detail::make_multipart_data_boundary ();
8822
8846
const auto &content_type =
8823
8847
detail::serialize_multipart_formdata_get_content_type (boundary);
@@ -8826,7 +8850,7 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
8826
8850
}
8827
8851
8828
8852
inline Result ClientImpl::Put (const std::string &path, const Headers &headers,
8829
- const MultipartFormDataItems &items,
8853
+ const MultipartFormDataItemsForClientInput &items,
8830
8854
const std::string &boundary) {
8831
8855
if (!detail::is_multipart_boundary_chars_valid (boundary)) {
8832
8856
return Result{nullptr , Error::UnsupportedMultipartBoundaryChars};
@@ -8840,7 +8864,7 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
8840
8864
8841
8865
inline Result
8842
8866
ClientImpl::Put (const std::string &path, const Headers &headers,
8843
- const MultipartFormDataItems &items,
8867
+ const MultipartFormDataItemsForClientInput &items,
8844
8868
const MultipartFormDataProviderItems &provider_items) {
8845
8869
const auto &boundary = detail::make_multipart_data_boundary ();
8846
8870
const auto &content_type =
@@ -10251,21 +10275,21 @@ inline Result Client::Post(const std::string &path, const Headers &headers,
10251
10275
return cli_->Post (path, headers, params, progress);
10252
10276
}
10253
10277
inline Result Client::Post (const std::string &path,
10254
- const MultipartFormDataItems &items) {
10278
+ const MultipartFormDataItemsForClientInput &items) {
10255
10279
return cli_->Post (path, items);
10256
10280
}
10257
10281
inline Result Client::Post (const std::string &path, const Headers &headers,
10258
- const MultipartFormDataItems &items) {
10282
+ const MultipartFormDataItemsForClientInput &items) {
10259
10283
return cli_->Post (path, headers, items);
10260
10284
}
10261
10285
inline Result Client::Post (const std::string &path, const Headers &headers,
10262
- const MultipartFormDataItems &items,
10286
+ const MultipartFormDataItemsForClientInput &items,
10263
10287
const std::string &boundary) {
10264
10288
return cli_->Post (path, headers, items, boundary);
10265
10289
}
10266
10290
inline Result
10267
10291
Client::Post (const std::string &path, const Headers &headers,
10268
- const MultipartFormDataItems &items,
10292
+ const MultipartFormDataItemsForClientInput &items,
10269
10293
const MultipartFormDataProviderItems &provider_items) {
10270
10294
return cli_->Post (path, headers, items, provider_items);
10271
10295
}
@@ -10338,21 +10362,21 @@ inline Result Client::Put(const std::string &path, const Headers &headers,
10338
10362
return cli_->Put (path, headers, params, progress);
10339
10363
}
10340
10364
inline Result Client::Put (const std::string &path,
10341
- const MultipartFormDataItems &items) {
10365
+ const MultipartFormDataItemsForClientInput &items) {
10342
10366
return cli_->Put (path, items);
10343
10367
}
10344
10368
inline Result Client::Put (const std::string &path, const Headers &headers,
10345
- const MultipartFormDataItems &items) {
10369
+ const MultipartFormDataItemsForClientInput &items) {
10346
10370
return cli_->Put (path, headers, items);
10347
10371
}
10348
10372
inline Result Client::Put (const std::string &path, const Headers &headers,
10349
- const MultipartFormDataItems &items,
10373
+ const MultipartFormDataItemsForClientInput &items,
10350
10374
const std::string &boundary) {
10351
10375
return cli_->Put (path, headers, items, boundary);
10352
10376
}
10353
10377
inline Result
10354
10378
Client::Put (const std::string &path, const Headers &headers,
10355
- const MultipartFormDataItems &items,
10379
+ const MultipartFormDataItemsForClientInput &items,
10356
10380
const MultipartFormDataProviderItems &provider_items) {
10357
10381
return cli_->Put (path, headers, items, provider_items);
10358
10382
}
0 commit comments