使用cpp-httplib的POST请求

时间:2018-09-11 11:35:59

标签: c++ http

我发现了这个只有标头的库,名为cpp-httplib,对于我来说,它似乎可以正常工作。我需要通过HTTP请求控制摄像机。例如,我可以使用以下方法读取相机的当前位置:

httplib::Client cli("192.170.0.201", 8080);
auto res = cli.Get("/ptz.stats/present_pos");

对应于以下Curl命令;

  

curl -X GET“ http://192.170.0.201:8080/ptz.stats/present_pos

现在,我想使用POST请求移动相机。使用curl时,我可以使用以下命令将相机向左移动:

  

curl -X POST“ http://192.170.0.201:8080/ptz.cmd/?pan_left=50

我想使用{p> 1从httplib发出完全相同的POST请求

httplib::Client cli("192.170.0.201", 8080);
httplib::Params params{
  { "pan_left", "50" }
};
auto p = cli.Post("/ptz.cmd", params);

,这无济于事。我可以看到相机,并且curl命令可以移动它。因此,我是否以错误的方式将POST请求转换为httplib格式?您将如何在httplib中调用该curl请求?

PS:httplib可能不是一个流行的库,但是它具有简洁的文档,我认为使用Web请求和C ++的任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:1)

相关问题: How are parameters sent in an HTTP POST request?

POST参数不在URI中发送。在cpp-httplib github中,您可以使用以下方式发送网址编码的参数:

cli.Post("/ptz.cmd", "pan_left=50", "application/x-www-form-urlencoded");