私の出発点は、ブーストhttp_client_async のブースト ビースト http_client_async の例から単純なダウンローダー コードを作成することです。このシナリオでは、受信した本文をファイルに書き込みたいと考えています。
そこで、受信したデータを書き込むために、文字列本体を file_body に交換しました。
http::response_parser<http::file_body> res_;
そして、単に on_write メソッドを次のように書き直しました。
void on_write( boost::system::error_code ec,
std::size_t bytes_transferred )
{
boost::ignore_unused(bytes_transferred);
if(ec)
return fail(ec, "write");
boost::system::error_code ec_file;
res_.body().open("myTest.txt", boost::beast::file_mode::write, ec_file);
// test for ec_file missing
// Receive the HTTP response
http::async_read(socket_, buffer_, res_,
std::bind(
&session::on_read,
shared_from_this(),
std::placeholders::_1,
std::placeholders::_2));
}
そのため、現在、受信したデータ本体の一部が大きすぎます。
read: body limit exceeded
体の限界を上げようとする。
messageの代わりにパーサーを使用する場合、リクエストされたボディのサイズ制限はメソッドで変更できます。body_limit()
メッセージからボディサイズの制限を増やす簡単な方法はありますか?