Отправка POST с помощью cpprest

У меня есть следующий код для отправки POST, но я получаю сообщение об ошибке, даже если он правильно скомпилирован

http_client client(U("http://l0.71.103.63:34568"));
json::value postData;
postData["name"] = json::value::string(U("Mohammad"));

http_response response = client.request(methods::POST,postData.to_string().c_str()).get();

if(response.status_code() == status_codes::OK)
{
  auto body = response.extract_string();
  std::wcout << L"Added new Id: " << body.get().c_str() << std::endl;

  return std::stoi(body.get().c_str());
}

Но я получаю следующую ошибку при попытке запустить программу

terminate called after throwing an instance of 'web::uri_exception'
what():  provided uri is invalid: {"name":"Mohammad"}
Aborted (core dumped)

2 ответа

Я думаю, что проблема в вашем IP-адресе. Похоже, ваш IP-адрес неверный? У вас есть " http://l0/." где "10" - это "l0" (строчная буква L).

Отсюда и сеть:uri_exception.

Вы ошибаетесь (я так думаю) в вашем запросе, должно выглядеть так:

автоответчик = client.request(методы::POST, U("\"), postData).get();

Второй аргумент в запросе - это дополнение URL, и вы передаете свой JSON в строке, отсюда и ваша ошибка.
в основном, синтаксис, который вы хотите, это:

pplx:: задача web::http::client::http_client::request (метод const & mtd, утилита const::string_t & path_query_fragment, const json::value & body_data, const pplx::cancellation_token & token = pplx::cancellation_token::none())

Другие вопросы по тегам