Converts Body into Bytes and limits the maximum size of the body.
Example
use axum::body::{to_bytes, Body};
# async fn foo() -> Result<(), axum_core::Error> {
let body = Body::from(vec![1, 2, 3]);
let bytes = to_bytes(body, usize::MAX).await?;
assert_eq!(&bytes[..], &[1, 2, 3]);
# Ok(())
# }
You can detect if the limit was hit by checking the source of the error:
use axum::body::{to_bytes, Body};
use http_body_util::LengthLimitError;
# #[tokio::main]
# async fn main() {
let body = Body::from(vec![1, 2, 3]);
match to_bytes(body, 1).await {
Ok(_bytes) => panic!("should have hit the limit"),
Err(err) => {
let source = std::error::Error::source(&err).unwrap();
assert!(source.is::<LengthLimitError>());
}
}
# }