Struct reqwest::blocking::Body[][src]

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).

Implementations

impl Body[src]

pub fn new<R: Read + Send + 'static>(reader: R) -> Body[src]

Instantiate a Body from a reader.

Note

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);

pub fn sized<R: Read + Send + 'static>(reader: R, len: u64) -> Body[src]

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);

pub fn as_bytes(&self) -> Option<&[u8]>[src]

Returns the body as a byte slice if the body is already buffered in memory. For streamed requests this method returns None.

pub fn buffer(&mut self) -> Result<&[u8], Error>[src]

Converts streamed requests to their buffered equivalent and returns a reference to the buffer. If the request is already buffered, this has no effect.

Be aware that for large requests this method is expensive and may cause your program to run out of memory.

Trait Implementations

impl Debug for Body[src]

impl From<&'static [u8]> for Body[src]

impl From<&'static str> for Body[src]

impl From<Bytes> for Body[src]

impl From<File> for Body[src]

impl From<String> for Body[src]

impl From<Vec<u8, Global>> for Body[src]

Auto Trait Implementations

impl !RefUnwindSafe for Body

impl Send for Body

impl !Sync for Body

impl Unpin for Body

impl !UnwindSafe for Body

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,