我找到了这个名为cpp-httplib的头文件库,它似乎对我的目的很好。我需要通过HTTP请求控制摄像头。例如,我可以使用以下方法读取相机的当前位置:
httplib::Client cli("192.170.0.201", 8080);
auto res = cli.Get("/ptz.stats/present_pos");
对应于以下Curl命令;
现在,我想使用POST请求移动相机。使用curl,我可以使用以下命令将相机移动到左侧:
我想从httplib
使用完全相同的POST请求
httplib::Client cli("192.170.0.201", 8080);
httplib::Params params{
{ "pan_left", "50" }
};
auto p = cli.Post("/ptz.cmd", params);
而这没有任何作用。我可以看到相机和那个卷曲命令移动它。那么,我是否以错误的方式将POST请求转换为httplib
格式?您如何在httplib
中调用该卷曲请求?
PS:httplib
可能不是一个受欢迎的库,但它有简洁的文档,我认为任何使用Web请求和C ++的人都可以提供帮助。
相关问题:How are parameters sent in an HTTP POST request?
POST参数不会在URI中发送。从cpp-httplib github,您可以使用以下命令发送url编码的参数:
cli.Post("/ptz.cmd", "pan_left=50", "application/x-www-form-urlencoded");