使用cpp-httplib的POST请求

问题描述 投票:2回答:1

我找到了这个名为cpp-httplib的头文件库,它似乎对我的目的很好。我需要通过HTTP请求控制摄像头。例如,我可以使用以下方法读取相机的当前位置:

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

对应于以下Curl命令;

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

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

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

我想从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 ++的人都可以提供帮助。

c++ http
1个回答
1
投票

相关问题: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");
© www.soinside.com 2019 - 2024. All rights reserved.