@@ -553,6 +553,15 @@ struct MultipartFormData {
553553using MultipartFormDataItems = std::vector<MultipartFormData>;
554554using MultipartFormDataMap = std::multimap<std::string, MultipartFormData>;
555555
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+
556565class DataSink {
557566public:
558567 DataSink () : os(&sb_), sb_(*this ) {}
@@ -1330,13 +1339,15 @@ class ClientImpl {
13301339 const Params ¶ms);
13311340 Result Post (const std::string &path, const Headers &headers,
13321341 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);
13341344 Result Post (const std::string &path, const Headers &headers,
1335- const MultipartFormDataItems &items);
1345+ const MultipartFormDataItemsForClientInput &items);
13361346 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);
13381349 Result Post (const std::string &path, const Headers &headers,
1339- const MultipartFormDataItems &items,
1350+ const MultipartFormDataItemsForClientInput &items,
13401351 const MultipartFormDataProviderItems &provider_items);
13411352
13421353 Result Put (const std::string &path);
@@ -1372,13 +1383,15 @@ class ClientImpl {
13721383 const Params ¶ms);
13731384 Result Put (const std::string &path, const Headers &headers,
13741385 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);
13761388 Result Put (const std::string &path, const Headers &headers,
1377- const MultipartFormDataItems &items);
1389+ const MultipartFormDataItemsForClientInput &items);
13781390 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);
13801393 Result Put (const std::string &path, const Headers &headers,
1381- const MultipartFormDataItems &items,
1394+ const MultipartFormDataItemsForClientInput &items,
13821395 const MultipartFormDataProviderItems &provider_items);
13831396
13841397 Result Patch (const std::string &path);
@@ -1664,7 +1677,8 @@ class ClientImpl {
16641677 ContentProviderWithoutLength content_provider_without_length,
16651678 const std::string &content_type, Progress progress);
16661679 ContentProviderWithoutLength get_multipart_content_provider (
1667- const std::string &boundary, const MultipartFormDataItems &items,
1680+ const std::string &boundary,
1681+ const MultipartFormDataItemsForClientInput &items,
16681682 const MultipartFormDataProviderItems &provider_items) const ;
16691683
16701684 std::string adjust_host_string (const std::string &host) const ;
@@ -1769,13 +1783,15 @@ class Client {
17691783 const Params ¶ms);
17701784 Result Post (const std::string &path, const Headers &headers,
17711785 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);
17731788 Result Post (const std::string &path, const Headers &headers,
1774- const MultipartFormDataItems &items);
1789+ const MultipartFormDataItemsForClientInput &items);
17751790 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);
17771793 Result Post (const std::string &path, const Headers &headers,
1778- const MultipartFormDataItems &items,
1794+ const MultipartFormDataItemsForClientInput &items,
17791795 const MultipartFormDataProviderItems &provider_items);
17801796
17811797 Result Put (const std::string &path);
@@ -1811,13 +1827,15 @@ class Client {
18111827 const Params ¶ms);
18121828 Result Put (const std::string &path, const Headers &headers,
18131829 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);
18151832 Result Put (const std::string &path, const Headers &headers,
1816- const MultipartFormDataItems &items);
1833+ const MultipartFormDataItemsForClientInput &items);
18171834 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);
18191837 Result Put (const std::string &path, const Headers &headers,
1820- const MultipartFormDataItems &items,
1838+ const MultipartFormDataItemsForClientInput &items,
18211839 const MultipartFormDataProviderItems &provider_items);
18221840
18231841 Result Patch (const std::string &path);
@@ -5331,7 +5349,7 @@ serialize_multipart_formdata_get_content_type(const std::string &boundary) {
53315349}
53325350
53335351inline std::string
5334- serialize_multipart_formdata (const MultipartFormDataItems &items,
5352+ serialize_multipart_formdata (const MultipartFormDataItemsForClientInput &items,
53355353 const std::string &boundary, bool finish = true ) {
53365354 std::string body;
53375355
@@ -8370,7 +8388,8 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req,
83708388}
83718389
83728390inline ContentProviderWithoutLength ClientImpl::get_multipart_content_provider (
8373- const std::string &boundary, const MultipartFormDataItems &items,
8391+ const std::string &boundary,
8392+ const MultipartFormDataItemsForClientInput &items,
83748393 const MultipartFormDataProviderItems &provider_items) const {
83758394 size_t cur_item = 0 ;
83768395 size_t cur_start = 0 ;
@@ -8671,23 +8690,26 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
86718690 progress);
86728691}
86738692
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) {
86768696 return Post (path, Headers (), items);
86778697}
86788698
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) {
86818702 const auto &boundary = detail::make_multipart_data_boundary ();
86828703 const auto &content_type =
86838704 detail::serialize_multipart_formdata_get_content_type (boundary);
86848705 const auto &body = detail::serialize_multipart_formdata (items, boundary);
86858706 return Post (path, headers, body, content_type);
86868707}
86878708
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) {
86918713 if (!detail::is_multipart_boundary_chars_valid (boundary)) {
86928714 return Result{nullptr , Error::UnsupportedMultipartBoundaryChars};
86938715 }
@@ -8700,7 +8722,7 @@ inline Result ClientImpl::Post(const std::string &path, const Headers &headers,
87008722
87018723inline Result
87028724ClientImpl::Post (const std::string &path, const Headers &headers,
8703- const MultipartFormDataItems &items,
8725+ const MultipartFormDataItemsForClientInput &items,
87048726 const MultipartFormDataProviderItems &provider_items) {
87058727 const auto &boundary = detail::make_multipart_data_boundary ();
87068728 const auto &content_type =
@@ -8811,13 +8833,15 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
88118833 progress);
88128834}
88138835
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) {
88168839 return Put (path, Headers (), items);
88178840}
88188841
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) {
88218845 const auto &boundary = detail::make_multipart_data_boundary ();
88228846 const auto &content_type =
88238847 detail::serialize_multipart_formdata_get_content_type (boundary);
@@ -8826,7 +8850,7 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
88268850}
88278851
88288852inline Result ClientImpl::Put (const std::string &path, const Headers &headers,
8829- const MultipartFormDataItems &items,
8853+ const MultipartFormDataItemsForClientInput &items,
88308854 const std::string &boundary) {
88318855 if (!detail::is_multipart_boundary_chars_valid (boundary)) {
88328856 return Result{nullptr , Error::UnsupportedMultipartBoundaryChars};
@@ -8840,7 +8864,7 @@ inline Result ClientImpl::Put(const std::string &path, const Headers &headers,
88408864
88418865inline Result
88428866ClientImpl::Put (const std::string &path, const Headers &headers,
8843- const MultipartFormDataItems &items,
8867+ const MultipartFormDataItemsForClientInput &items,
88448868 const MultipartFormDataProviderItems &provider_items) {
88458869 const auto &boundary = detail::make_multipart_data_boundary ();
88468870 const auto &content_type =
@@ -10251,21 +10275,21 @@ inline Result Client::Post(const std::string &path, const Headers &headers,
1025110275 return cli_->Post (path, headers, params, progress);
1025210276}
1025310277inline Result Client::Post (const std::string &path,
10254- const MultipartFormDataItems &items) {
10278+ const MultipartFormDataItemsForClientInput &items) {
1025510279 return cli_->Post (path, items);
1025610280}
1025710281inline Result Client::Post (const std::string &path, const Headers &headers,
10258- const MultipartFormDataItems &items) {
10282+ const MultipartFormDataItemsForClientInput &items) {
1025910283 return cli_->Post (path, headers, items);
1026010284}
1026110285inline Result Client::Post (const std::string &path, const Headers &headers,
10262- const MultipartFormDataItems &items,
10286+ const MultipartFormDataItemsForClientInput &items,
1026310287 const std::string &boundary) {
1026410288 return cli_->Post (path, headers, items, boundary);
1026510289}
1026610290inline Result
1026710291Client::Post (const std::string &path, const Headers &headers,
10268- const MultipartFormDataItems &items,
10292+ const MultipartFormDataItemsForClientInput &items,
1026910293 const MultipartFormDataProviderItems &provider_items) {
1027010294 return cli_->Post (path, headers, items, provider_items);
1027110295}
@@ -10338,21 +10362,21 @@ inline Result Client::Put(const std::string &path, const Headers &headers,
1033810362 return cli_->Put (path, headers, params, progress);
1033910363}
1034010364inline Result Client::Put (const std::string &path,
10341- const MultipartFormDataItems &items) {
10365+ const MultipartFormDataItemsForClientInput &items) {
1034210366 return cli_->Put (path, items);
1034310367}
1034410368inline Result Client::Put (const std::string &path, const Headers &headers,
10345- const MultipartFormDataItems &items) {
10369+ const MultipartFormDataItemsForClientInput &items) {
1034610370 return cli_->Put (path, headers, items);
1034710371}
1034810372inline Result Client::Put (const std::string &path, const Headers &headers,
10349- const MultipartFormDataItems &items,
10373+ const MultipartFormDataItemsForClientInput &items,
1035010374 const std::string &boundary) {
1035110375 return cli_->Put (path, headers, items, boundary);
1035210376}
1035310377inline Result
1035410378Client::Put (const std::string &path, const Headers &headers,
10355- const MultipartFormDataItems &items,
10379+ const MultipartFormDataItemsForClientInput &items,
1035610380 const MultipartFormDataProviderItems &provider_items) {
1035710381 return cli_->Put (path, headers, items, provider_items);
1035810382}
0 commit comments