[][src]Struct isahc::Body

pub struct Body(_);

Contains the body of an HTTP request or response.

This type is used to encapsulate the underlying stream or region of memory where the contents of the body are stored. A Body can be created from many types of sources using the Into trait or one of its constructor functions.

Since the entire request life-cycle in Isahc is asynchronous, bodies must also be asynchronous. You can create a body from anything that implements AsyncRead, which Body itself also implements.

Methods

impl Body[src]

pub const fn empty() -> Self[src]

Create a new empty body.

An empty body will have a known length of 0 bytes.

pub fn bytes(bytes: impl Into<Bytes>) -> Self[src]

Create a new body from bytes stored in memory.

The body will have a known length equal to the number of bytes given.

pub fn reader(read: impl AsyncRead + Send + 'static) -> Self[src]

Create a streaming body that reads from the given reader.

The body will have an unknown length. When used as a request body, chunked transfer encoding might be used to send the request.

pub fn reader_sized(read: impl AsyncRead + Send + 'static, length: u64) -> Self[src]

Create a streaming body with a known length.

If the size of the body is known in advance, such as with a file, then this function can be used to create a body that can determine its Content-Length while still reading the bytes asynchronously.

Giving a value for length that doesn't actually match how much data the reader will produce may result in errors when sending the body in a request.

pub fn is_empty(&self) -> bool[src]

Report if this body is empty.

pub fn len(&self) -> Option<u64>[src]

Get the size of the body, if known.

The value reported by this method is used to set the Content-Length for outgoing requests.

When coming from a response, this method will report the value of the Content-Length response header if present. If this method returns None then there's a good chance that the server used something like chunked transfer encoding to send the response body.

Since the length may be determined totally separately from the actual bytes, even if a value is returned it should not be relied on as always being accurate, and should be treated as a "hint".

pub fn reset(&mut self) -> bool[src]

If this body is repeatable, reset the body stream back to the start of the content. Returns false if the body cannot be reset.

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

Get the response body as a string.

If the body comes from a stream, the steam bytes will be consumed and this method will return an empty string next call. If this body supports seeking, you can seek to the beginning of the body if you need to call this method again later.

pub fn text_async(&mut self) -> Text<Body>[src]

Get the response body as a string asynchronously.

If the body comes from a stream, the steam bytes will be consumed and this method will return an empty string next call. If this body supports seeking, you can seek to the beginning of the body if you need to call this method again later.

pub fn json<T: DeserializeOwned>(&mut self) -> Result<T, Error>[src]

Deserialize the response body as JSON into a given type.

This method requires the json feature to be enabled.

Trait Implementations

impl From<()> for Body[src]

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

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

impl From<Bytes> for Body[src]

impl From<String> for Body[src]

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

impl<T: Into<Body>> From<Option<T>> for Body[src]

impl Default for Body[src]

impl Debug for Body[src]

impl Read for Body[src]

impl AsyncRead for Body[src]

Auto Trait Implementations

impl Send for Body

impl !Sync for Body

impl Unpin for Body

impl !UnwindSafe for Body

impl !RefUnwindSafe for Body

Blanket Implementations

impl<T> From<T> 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 = !

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<T> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<R> ReadBytesExt for R where
    R: Read + ?Sized

impl<R> AsyncReadExt for R where
    R: AsyncRead + ?Sized
[src]