Я попытался использовать опубликованный ответ, но обнаружил, что он плохо работает с экспресс-анализатором json и каждый раз выдает неверный запрос. Я думаю, что использование данных формы curlpp, скорее всего, лучший вариант. Посмотрите код ниже для базового примера отправки строки json и файла в форме:
std::string BasicFormDataPost(std::string url, std::string body1, std::string filename)
{
std::ostringstream result;
try
{
// Initialization
curlpp::Cleanup cleaner;
curlpp::Easy request;
curlpp::Forms formParts;
formParts.push_back(new curlpp::FormParts::Content("formjson",body1)); // One has to remember to JSON.parse on the server to use the body data.
formParts.push_back(new curlpp::FormParts::File("attachment", filename));
using namespace curlpp::Options;
// request.setOpt(new Verbose(true));
request.setOpt(new Url(url));
request.setOpt(new HttpPost(formParts));
request.setOpt(WriteStream(&result));
request.perform();
return std::string( result.str());
}
catch ( curlpp::LogicError & e )
{
std::cout << e.what() << std::endl;
}
catch ( curlpp::RuntimeError & e )
{
std::cout << e.what() << std::endl;
}
}
Этот ответ был составлен из предыдущего ответа и примеров curlpp, расположенных по адресу: https://github.com/datacratic/curlpp/tree/master/examples