我正在开发一个http解析器,看起来像boost.beast是一个很好的.但是,我还有一些问题:
***假设已通过boost.asio套接字接收到HTTP请求POST数据.存储在std :: string缓冲区中.
有没有关于如何提取http标头字段及其值(一个接一个)的好样本?我假设它将是一个迭代器方法,但我尝试了几种方法仍然无法工作.
如何提取http正文?
非常感谢你.
我正在为简单的 RESTful 服务器开发 Boost Asio 和 Boost Beast。对于普通的 HTTP 和 TCP 套接字,它工作得很好。我用 JMeter 对它进行了负载测试,一切正常。
我尝试添加 SSL 套接字。我设置了“ssl::context”,也称为“async_handshake()”——与普通套接字相比,SSL 的附加步骤。仅在第一次时有效。客户端可以与我(服务器)连接,我也可以通过“boost::beast::http::async_read()”接收数据。
因为这是 RESTful,所以连接将在请求和响应后断开。我调用“SSL_Socket.shutdown()”,然后调用“SSL_Socket.lowest_layer().close()”来关闭 SSL 套接字。
当下一个传入请求时,客户端能够与我(服务器)连接。我调用了“SSL_Socket.async_handshake()”,然后调用了“boost::beast::http::async_read()”。但这次我无法收到任何数据。但连接已成功建立。
有人知道我错过了什么吗?
非常感谢!