Как распечатать тело ответа в промежуточном программном обеспечении actix_web?

Я хотел бы написать очень простое промежуточное ПО, используя actix_web framework, но до сих пор он обошел меня по всем параметрам.

У меня такой скелет:

let result = actix_web::HttpServer::new(move || {
    actix_web::App::new()
        .wrap_fn(move |req, srv| {
            srv.call(req).map(move|res| {
                println!("Got response");
                // let s = res.unwrap().response().body();
                // ???
                res
            })
        })
})
.bind("0.0.0.0:8080")?
.run()
.await;

и я могу получить доступ к типу ResponseBody через res.unwrap().response().body() но я не знаю, что мне с этим делать.

Любые идеи?


person Patryk    schedule 16.10.2020    source источник
comment
Я удалил свой ответ, потому что не знаю об ответах, и неправильно прочитал ваш вопрос как RequestBody. Однако я подозреваю, что вы столкнетесь с той же проблемой, если ответ будет потоком. (Проблема с проблемой доступа к запросам: github.com/actix/actix-web/issues / 373).   -  person Peter Hall    schedule 16.10.2020
comment
Вероятно, ответ состоит в том, чтобы собрать поток в некоторую структуру данных, выделенную в куче, а затем (каким-то образом) снова перестроить поток в действительный ответ.   -  person Peter Hall    schedule 16.10.2020
comment
Связанный: stackoverflow.com/q/63910673/493729   -  person Peter Hall    schedule 16.10.2020