我目前正在使用boost::beast
实现一个 ntrip 1.0 客户端。它的请求如下:
GET /BUCU1 HTTP/1.0 用户代理:NTRIP GNSSInternetRadio/1.2.0 授权:基本 aHVnb2JlbjpodWdvYmVuMTIz
响应如下:
冰冷 200 OK
它具有非标准的 http 响应。
我作为野兽 http 客户端示例代码,它在缓冲区中得到这个响应。但它会在读取函数中产生异常。错误是“读取,错误版本”。我想知道处理非标准 http 响应的最佳方法是什么。
void
on_write(
boost::system::error_code ec,
std::size_t bytes_transferred)
{
boost::ignore_unused(bytes_transferred);
if (ec)
return fail(ec, "write");
// Receive the HTTP response
// boost::beast::flat_buffer buffer_; // (Must persist between reads)
// http::response <http::string_body> res_;
http::async_read(socket_, buffer_, res_,
std::bind(
&session::on_read,
shared_from_this(),
std::placeholders::_1,
std::placeholders::_2));
}
void
on_read(
boost::system::error_code ec,
std::size_t bytes_transferred)
{
boost::ignore_unused(bytes_transferred);
if (ec)
return fail(ec, "read"); // ex
}