6

私の出発点は、ブースト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()

メッセージからボディサイズの制限を増やす簡単な方法はありますか?

4

1 に答える 1