C 使用BOOST.ASIO和BEAST库中的身体发送数据
C++ Send data in body with Boost.asio and Beast library
我已经使用C 库将数据发送到我们公司的REST-WEBSERVICE。我从Boost and Beast开始,并从Code :: Ubuntu 16.04 Enviroment中给出的示例开始。该文档在以下问题中没有帮助:
我的代码或多或少都等于示例,我可以成功地编译并向我的测试Web服务发送一个重新要求。
但是如何从此定义中设置请求(req(内的数据:
:
beast::http::request<beast::http::string_body> req;
req.method("GET");
req.target("/");
:
我尝试使用一些req.body.???
,但是代码完成并没有给我一个有关功能的提示(顺便说一句。不起作用(。我知道必须将req.method
更改为"帖子"以发送数据。
Google并未显示有关此的新示例,只有上述代码作为示例。
有人暗示了代码示例或使用野兽(咆哮(。还是我应该使用Websocket?或者只有boost :: asio喜欢在这里回答?
提前感谢并原谅我的英语不好。
埃利奥特(Eliott Paris(答案的小补充:
-
正确的设置字体语法是
req.body() = "name=foo";
-
您应该添加
req.prepare_payload();
将身体设置为在HTTP标头中设置身体大小后。
要用您的请求发送数据,您需要填充身体并指定内容类型。
beast::http::request<beast::http::string_body> req;
req.method(beast::http::verb::post);
req.target("/");
如果要将"键=值"发送为" x-www-form-urlenCoded"对:
req.set(beast::http::field::content_type, "application/x-www-form-urlencoded");
req.body() = "name=foo";
或原始数据:
req.set(beast::http::field::content_type, "text/plain");
req.body() = "Some raw data";
相关文章:
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?
- TCP 服务器的异步读取使用 boost::asio 打印客户端套接字发送的数据
- 如何复制 boost::aligned_storage 对象中的数据?
- boost::asio 不会触发读取处理程序,而 Wireshark 会看到传入的数据
- 如何使用 boost::asio 的 async_read_some() 读取所有可用数据,而无需等待新数据到达?
- boost::asio-async_read_some示例代码没有读取套接字中的所有数据
- boost odeint 中的受控误差步进器是否支持复杂的数据类型?
- boost::asio::async_read 无限循环,接收数据为零字节
- 如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
- "非静态数据成员之前需要构造函数" - 我是否使用"boost::variant"
- boost::asio 以async_read复制输入数据
- 使用 boost::p ython 将数据缓冲区放入C++中
- C 使用BOOST.ASIO和BEAST库中的身体发送数据
- Boost Asio网络发送/接收是否具有任何形式的数据完整性保证
- 插座无法接收数据?客户使用boost.asyio库编写.服务器用Python编写
- 使用标准库或Boost库从一组数据中计算直方图
- 数据集(和样本)何时在 boost::test 中销毁?
- 使用 boost zlib 从 std::vector 中的文件中读取压缩的 zraw 数据
- 了解 UDP 数据包大小限制的 TCP 数据包大小限制以及它在 boost::asio 编程级别的含义