C++ Boost 1.66 使用 Beast http request Parser 来解析字符串

Posted

技术标签:

【中文标题】C++ Boost 1.66 使用 Beast http request Parser 来解析字符串【英文标题】:C++ Boost 1.66 using Beast http request Parser for parsing an string 【发布时间】:2018-04-10 14:51:06 【问题描述】:

我没有在我的项目中使用 beast http 服务器,但我正在寻找一种解决方案来在我的程序中解析 std::string 形式的 http 请求,是否可以使用 boost/beast/http/parser。 hpp 在这种情况下,如果是这样的话,如果你在代码中给出一个例子,那就太好了。 非常感谢

【问题讨论】:

【参考方案1】:

是的,有可能:

std::string s =
    "POST /cgi/message.php HTTP/1.1\r\n"
    "Content-Length: 5\r\n"
    "\r\n"
    "abcde";
error_code ec;
request_parser<string_body> p;
p.put(boost::asio::buffer(s), ec);

【讨论】:

bad method 在您的示例中写入error_code。 (提升 1.68) 哎呀,对不起!该字符串包含 HTTP 响应而不是请求。我已经更新了代码示例。

以上是关于C++ Boost 1.66 使用 Beast http request Parser 来解析字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何正确写c++ boost beast websocket server

试图用 Boost::Beast 替换我的 libwebsocket 代码

在 Beast Boost 之上开发的 C++ 代理,无法接收来自主机的大响应并将其转发给原始(下游)客户端

boost asio tcp socket 1.70 不向后兼容

使用 boost::beast 处理大型 http 响应

使用 Boost Beast 处理并发请求