How do I read the entire body of a Tokio-based Hyper request?

Hyper 0.13 provides a body::to_bytes function for this purpose.

use hyper::body;
use hyper::{Body, Response};

pub async fn read_response_body(res: Response<Body>) -> Result<String, hyper::Error> {
    let bytes = body::to_bytes(res.into_body()).await?;
    Ok(String::from_utf8(bytes.to_vec()).expect("response was not valid utf-8"))
}

Leave a Comment