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

A Response to a submitted Request.

Implementations

Get the StatusCode of this Response.

Get the HTTP Version of this Response.

Get the Headers of this Response.

Get a mutable reference to the Headers of this Response.

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 compressed and automatically decoded (thus changing the actual decoded length).

Get the final Url of this Response.

Get the remote address used to get this Response.

Returns a reference to the associated extensions.

Returns a mutable reference to the associated extensions.

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

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

Try to deserialize the response body as JSON.

Optional

This requires the optional json feature enabled.

Examples
// This `derive` requires the `serde` dependency.
#[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.

Get the full response body as Bytes.

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

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

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

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.

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

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

Consumes the response and returns a future for a possible HTTP upgrade.

Trait Implementations

Formats the value using the given formatter. Read more
Converts to this type from the input type.

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

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more