如何将 boost::beast 的响应<buffer_body> 转换为响应<string_body>?
How do I convert a boost::beast's response<buffer_body> to a response<string_body>?
我需要将 boost::beast::http::response<boost::beast::http::buffer_body>
转换为 boost::beast::http::response<boost::beast::http::string_body>
。
使用 beast 的 api 有什么优雅有效的方法?
P.S.
我认为序列化和解析的效率不是很高,也许有更好的方法。但如果这是解决方案,因为我是 beast 的新手,我也很高兴看到一个优雅的代码示例。
谢谢,
大卫.
好的,我做到了
boost::beast::http::response<boost::beast::http::string_body> string_response;
boost::beast::http::response<boost::beast::http::buffer_body> buffer_response;
std::string response_body
// Do stuff to read the response and fill the response_body using the buffer
string_response.base() = buffer_response.base();
string_response.body() = response_body;
原来header有一个copy constructor,所以我所要做的就是分配string body..
所以如果复制构造函数是高效的(很可能是这样),这个解决方案也是高效的。
我需要将 boost::beast::http::response<boost::beast::http::buffer_body>
转换为 boost::beast::http::response<boost::beast::http::string_body>
。
使用 beast 的 api 有什么优雅有效的方法?
P.S.
我认为序列化和解析的效率不是很高,也许有更好的方法。但如果这是解决方案,因为我是 beast 的新手,我也很高兴看到一个优雅的代码示例。
谢谢, 大卫.
好的,我做到了
boost::beast::http::response<boost::beast::http::string_body> string_response;
boost::beast::http::response<boost::beast::http::buffer_body> buffer_response;
std::string response_body
// Do stuff to read the response and fill the response_body using the buffer
string_response.base() = buffer_response.base();
string_response.body() = response_body;
原来header有一个copy constructor,所以我所要做的就是分配string body..
所以如果复制构造函数是高效的(很可能是这样),这个解决方案也是高效的。