pub struct Body { /* fields omitted */ }
The body of a Request
.
In most cases, this is not needed directly, as the
RequestBuilder.body
method uses Into<Body>
, which allows
passing many things (like a string or vector of bytes).
Instantiate a Body
from a reader.
While allowing for many types to be used, these bodies do not have
a way to reset to the beginning and be reused. This means that when
encountering a 307 or 308 status code, instead of repeating the
request at the new location, the Response
will be returned with
the redirect status code set.
let file = File::open("national_secrets.txt")?;
let body = Body::new(file);
If you have a set of bytes, like String
or Vec<u8>
, using the
From
implementations for Body
will store the data in a manner
it can be reused.
let s = "A stringy body";
let body = Body::from(s);
Create a Body
from a Read
where the size is known in advance
but the data should not be fully loaded into memory. This will
set the Content-Length
header and stream from the Read
.
let file = File::open("a_large_file.txt")?;
let file_size = file.metadata()?.len();
let body = Body::sized(file, file_size);
Formats the value using the given formatter. Read more