2

我有以下代码可以发送 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)
4

2 回答 2

3

我认为问题是你的IP地址。看起来你的IP地址是错误的?你有“ http://l0 ”。其中“ 1 0”是“ l 0”(小写 L)。

因此 web:uri​​_exception。

于 2017-04-30T20:08:41.147 回答
0

您的请求是错误的(我认为),应该如下所示:

自动响应 = client.request(methods::POST, U("\"), postData).get();

请求中的第二个参数是 URL 补码,并且您以字符串形式传递 json,因此您遇到了错误。
基本上你想要的语法是这样

pplx::task web::http::client::http_client::request ( const 方法 & mtd, const utility::string_t & path_query_fragment, const json::value & body_data, const pplx::cancellation_token & token = pplx:: cancel_token::none() )

于 2017-04-19T09:00:13.413 回答