我必须使用 C++ 库将数据发送到我们公司的 REST-Web 服务。 我从 Boost 和 Beast 开始并以给出的例子here在 Code::Blocks 下,在 Ubuntu 16.04 环境中。 该文档没有帮助我解决以下问题:
我的代码或多或少与示例相同,我可以成功编译并向我的测试网络服务发送 GET 请求。
但是我如何根据这个定义在请求 (req) 中设置数据:
:
beast::http::request<beast::http::string_body> req;
req.method("GET");
req.target("/");
:
我尝试使用一些 req.body.???
,但代码完成没有给我有关功能的提示(顺便说一句,不起作用)。我知道 req.method
必须更改为“POST”才能发送数据。
谷歌没有展示关于这个的新例子,只找到上面的代码作为例子。
有人提示代码示例或使用关于野兽(咆哮)。还是我应该使用 websockets?或者像回答 here 那样的 boost::asio ?
提前致谢,请原谅我的英语不好。
最佳答案
Eliott Paris 回答的小补充:
设置正文的正确语法是
req.body() = "name=foo";
你应该添加
req.prepare_payload();
在设置正文后在 HTTP header 中设置正文大小。
关于C++ 使用 Boost.asio 和 Beast 库在正文中发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331292/