Struct reqwest::Response[][src]

pub struct Response { /* fields omitted */ }
Expand description

A Response to a submitted Request.

Implementations

impl Response[src]

pub fn status(&self) -> StatusCode[src]

Get the StatusCode of this Response.

pub fn version(&self) -> Version[src]

Get the HTTP Version of this Response.

pub fn headers(&self) -> &HeaderMap[src]

Get the Headers of this Response.

pub fn headers_mut(&mut self) -> &mut HeaderMap[src]

Get a mutable reference to the Headers of this Response.

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

Get the content-length of this response, if known.

Reasons it may not be known:

  • The server didn’t send a content-length header.
  • The response is gzipped and automatically decoded (thus changing the actual decoded length).

pub fn url(&self) -> &Url[src]

Get the final Url of this Response.

pub fn remote_addr(&self) -> Option<SocketAddr>[src]

Get the remote address used to get this Response.

pub async fn text(self) -> Result<String>[src]

Get the full response text.

This method decodes the response body with BOM sniffing and with malformed sequences replaced with the REPLACEMENT CHARACTER. Encoding is determinated from the charset parameter of Content-Type header, and defaults to utf-8 if not presented.

Example

let content = reqwest::get("http://httpbin.org/range/26")
    .await?
    .text()
    .await?;

println!("text: {:?}", content);

pub async fn text_with_charset(self, default_encoding: &str) -> Result<String>[src]

Get the full response text given a specific encoding.

This method decodes the response body with BOM sniffing and with malformed sequences replaced with the REPLACEMENT CHARACTER. You can provide a default encoding for decoding the raw message, while the charset parameter of Content-Type header is still prioritized. For more information about the possible encoding name, please go to encoding_rs docs.

Example

let content = reqwest::get("http://httpbin.org/range/26")
    .await?
    .text_with_charset("utf-8")
    .await?;

println!("text: {:?}", content);

pub async fn json<T: DeserializeOwned>(self) -> Result<T>[src]

Try to deserialize the response body as JSON.

Optional

This requires the optional json feature enabled.

Examples

#[derive(Deserialize)]
struct Ip {
    origin: String,
}

let ip = reqwest::get("http://httpbin.org/ip")
    .await?
    .json::<Ip>()
    .await?;

println!("ip: {}", ip.origin);

Errors

This method fails whenever the response body is not in JSON format or it cannot be properly deserialized to target type T. For more details please see serde_json::from_reader.

pub async fn bytes(self) -> Result<Bytes>[src]

Get the full response body as Bytes.

Example

let bytes = reqwest::get("http://httpbin.org/ip")
    .await?
    .bytes()
    .await?;

println!("bytes: {:?}", bytes);

pub async fn chunk(&mut self) -> Result<Option<Bytes>>[src]

Stream a chunk of the response body.

When the response body has been exhausted, this will return None.

Example

let mut res = reqwest::get("https://hyper.rs").await?;

while let Some(chunk) = res.chunk().await? {
    println!("Chunk: {:?}", chunk);
}

pub fn bytes_stream(self) -> impl Stream<Item = Result<Bytes>>[src]

Convert the response into a Stream of Bytes from the body.

Example

use futures_util::StreamExt;

let mut stream = reqwest::get("http://httpbin.org/ip")
    .await?
    .bytes_stream();

while let Some(item) = stream.next().await {
    println!("Chunk: {:?}", item?);
}

Optional

This requires the optional stream feature to be enabled.

pub fn error_for_status(self) -> Result<Self>[src]

Turn a response into an error if the server returned an error.

Example

fn on_response(res: Response) {
    match res.error_for_status() {
        Ok(_res) => (),
        Err(err) => {
            // asserting a 400 as an example
            // it could be any status between 400...599
            assert_eq!(
                err.status(),
                Some(reqwest::StatusCode::BAD_REQUEST)
            );
        }
    }
}

pub fn error_for_status_ref(&self) -> Result<&Self>[src]

Turn a reference to a response into an error if the server returned an error.

Example

fn on_response(res: &Response) {
    match res.error_for_status_ref() {
        Ok(_res) => (),
        Err(err) => {
            // asserting a 400 as an example
            // it could be any status between 400...599
            assert_eq!(
                err.status(),
                Some(reqwest::StatusCode::BAD_REQUEST)
            );
        }
    }
}

Trait Implementations

impl Debug for Response[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

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

fn from(r: Response<T>) -> Response[src]

Performs the conversion.

impl From<Response> for Body[src]

A Response can be piped as the Body of another request.

fn from(r: Response) -> Body[src]

Performs the conversion.

Auto Trait Implementations

impl !RefUnwindSafe for Response

impl Send for Response

impl Sync for Response

impl Unpin for Response

impl !UnwindSafe for Response

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.