使用cpprest发送POST

时间:2017-04-12 23:07:45

标签: c++ casablanca cpprest-sdk

我有以下代码发送POST,但即使编译正确,我也会收到错误

fileExtensions = ["mp3","m4a","3gp","wav","webm","etc"...]
@audioFiles = fs.readdirSync(pathToMusic,"fileExtencions")

但是在尝试运行程序时出现以下错误

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());
}

2 个答案:

答案 0 :(得分:2)

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

因此web:uri_exception。

答案 1 :(得分:0)

在你的请求中你错了(我认为),应该是这样的:

  

auto response = client.request(methods :: POST,U(“\”),postData).get();

请求中的第二个参数是URL补充,并且您将以字符串形式传递json,因此会出现错误。
基本上你想要的语法是one

  

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