Отправка 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())