我发现了这个只有标头的库,名为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 ++的任何人都可以提供帮助。
答案 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");