小编www*_*wwe的帖子

如何在 boost-beast http 请求中设置 http 标头?

我正在尝试使用 boost http 库发送带有标头的消息。我搜索了一种发送带有标头的消息的方法,但找不到。

我想做的是以下

auto const results = resolver.resolve(host, port);
beast::get_lowest_layer(stream).connect(results);
stream.handshake(ssl::stream_base::client);

http::request<http::string_body> req(verb, query + data, 11);
req.set(http::field::host, host);
// set http header ("key" = "I am a header")
// I want to add above code.
req.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING);

http::write(stream, req);
beast::flat_buffer buffer;
http::response<http::dynamic_body> res;
http::read(stream, buffer, res);
Run Code Online (Sandbox Code Playgroud)

请让我知道向 boost-beast http 请求添加标头的正确方法。谢谢!

c++ boost http boost-beast

4
推荐指数
1
解决办法
7389
查看次数

enable_shared_from_this 返回 bad_weak_ptr 错误

我在我的项目中使用 boost 库。在编写 rest http 客户端代码时,出现此错误。

libc++abi.dylib:以未捕获的 std::__1::bad_weak_ptr 类型异常终止:bad_weak_ptr

template <typename M>
 21 class Http: public std::enable_shared_from_this<Http<M>>
 22 {
 23     M* message_;
 24     bool isSubscribe_;
 25     boost::asio::io_context io_;
 26     boost::asio::ip::tcp::resolver resolver_;
 27     boost::beast::tcp_stream stream_;
 28     boost::beast::flat_buffer buffer_;
 29     boost::beast::http::request<boost::beast::http::empty_body> req_;
 30     boost::beast::http::response<boost::beast::http::string_body> res_;
 31     std::function<void(M*)> callback_;
 32 
 33     void SetUpRestHeader() {
 34         req_.method(boost::beast::http::verb::get);
 35         req_.target(message_ -> header_ -> target_);
 36         req_.set(boost::beast::http::field::host, message_ -> header_ -> host_);
 37         req_.set(boost::beast::http::field::user_agent, BOOST_BEAST_VERSION_STRING);
 38 
 39         resolver_.async_resolve(message_ -> header_ -> host_
 40                 , message_ -> …
Run Code Online (Sandbox Code Playgroud)

c++ boost shared-ptr enable-shared-from-this

-1
推荐指数
1
解决办法
235
查看次数