В настоящее время я использую boost::beast
для реализации клиента ntrip 1.0.Он имеет запрос вроде:
GET / BUCU1 HTTP / 1.0 Пользователь-агент: NTRIP GNSSInternetRadio / 1.2.0 Авторизация: Basic aHVnb2JlbjpodWdvYmVuMTIz
И ответ как:
ICY 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
}