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

A Response to a submitted Request.

Implementations

Get the StatusCode of this Response.

Examples

Checking for general status class:

let resp = reqwest::get("http://httpbin.org/get")?;
if resp.status().is_success() {
    println!("success!");
} else if resp.status().is_server_error() {
    println!("server error!");
} else {
    println!("Something else happened. Status: {:?}", resp.status());
}

Checking for specific status codes:

use reqwest::Client;
use reqwest::StatusCode;
let client = Client::new();

let resp = client.post("http://httpbin.org/post")
    .body("possibly too large")
    .send()?;

match resp.status() {
    StatusCode::OK => println!("success!"),
    StatusCode::PAYLOAD_TOO_LARGE => {
        println!("Request payload is too large!");
    }
    s => println!("Received response status: {:?}", s),
};

Get the Headers of this Response.

Example

Saving an etag when caching a file:

use reqwest::Client;
use reqwest::header::ETAG;

let client = Client::new();

let mut resp = client.get("http://httpbin.org/cache").send()?;
if resp.status().is_success() {
    if let Some(etag) = resp.headers().get(ETAG) {
        std::fs::write("etag", etag.as_bytes());
    }
    let mut file = std::fs::File::create("file")?;
    resp.copy_to(&mut file)?;
}

Retrieve the cookies contained in the response.

Note that invalid ‘Set-Cookie’ headers will be ignored.

Get the HTTP Version of this Response.

Get the final Url of this Response.

Example
let resp = reqwest::get("http://httpbin.org/redirect/1")?;
assert_eq!(resp.url().as_str(), "http://httpbin.org/get");

Get the remote address used to get this Response.

Example
let resp = reqwest::get("http://httpbin.org/redirect/1")?;
println!("httpbin.org address: {:?}", resp.remote_addr());

Get the content-length of the response, if it is 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).

Try and deserialize the response body as JSON using serde.

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

let json: Ip = reqwest::get("http://httpbin.org/ip")?.json()?;
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. serde_json::from_reader: https://docs.serde.rs/serde_json/fn.from_reader.html

Get the 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")?.text()?;
Note

This consumes the body. Trying to read more, or use of response.json() will return empty values.

Get the 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 https://docs.rs/encoding_rs/0.8.17/encoding_rs/#relationship-with-windows-code-pages

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

This consumes the body. Trying to read more, or use of response.json() will return empty values.

Copy the response body into a writer.

This function internally uses std::io::copy and hence will continuously read data from the body and then write it into writer in a streaming fashion until EOF is met.

On success, the total number of bytes that were copied to writer is returned.

Example
let mut resp = reqwest::get("http://httpbin.org/range/5")?;
let mut buf: Vec<u8> = vec![];
resp.copy_to(&mut buf)?;
assert_eq!(b"abcde", buf.as_slice());

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

Example
let res = reqwest::get("http://httpbin.org/status/400")?
    .error_for_status();
if let Err(err) = res {
    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
let res = reqwest::get("http://httpbin.org/status/400")?;
let res = res.error_for_status_ref();
if let Err(err) = res {
    assert_eq!(err.status(), Some(reqwest::StatusCode::BAD_REQUEST));
}

Trait Implementations

Formats the value using the given formatter. Read more

Performs the conversion.

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more

Like read, except that it reads into a slice of buffers. Read more

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Reader has an efficient read_vectored implementation. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

Read all bytes until EOF in this source, appending them to buf. Read more

Read the exact number of bytes required to fill buf. Read more

🔬 This is a nightly-only experimental API. (read_buf)

Pull some bytes from this source into the specified buffer. Read more

🔬 This is a nightly-only experimental API. (read_buf)

Read the exact number of bytes required to fill buf. Read more

Creates a “by reference” adaptor for this instance of Read. Read more

Transforms this Read instance to an Iterator over its bytes. Read more

Creates an adapter which will chain this stream with another. Read more

Creates an adapter which will read at most limit bytes from it. Read more

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.

Calls U::from(self).

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

Reads an unsigned 8 bit integer from the underlying reader. Read more

Reads a signed 8 bit integer from the underlying reader. Read more

Reads an unsigned 16 bit integer from the underlying reader. Read more

Reads a signed 16 bit integer from the underlying reader. Read more

Reads an unsigned 24 bit integer from the underlying reader. Read more

Reads a signed 24 bit integer from the underlying reader. Read more

Reads an unsigned 32 bit integer from the underlying reader. Read more

Reads a signed 32 bit integer from the underlying reader. Read more

Reads an unsigned 48 bit integer from the underlying reader. Read more

Reads a signed 48 bit integer from the underlying reader. Read more

Reads an unsigned 64 bit integer from the underlying reader. Read more

Reads a signed 64 bit integer from the underlying reader. Read more

Reads an unsigned 128 bit integer from the underlying reader. Read more

Reads a signed 128 bit integer from the underlying reader. Read more

Reads an unsigned n-bytes integer from the underlying reader. Read more

Reads a signed n-bytes integer from the underlying reader. Read more

Reads an unsigned n-bytes integer from the underlying reader.

Reads a signed n-bytes integer from the underlying reader.

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader. Read more

Reads a IEEE754 double-precision (8 bytes) floating point number from the underlying reader. Read more

Reads a sequence of unsigned 16 bit integers from the underlying reader. Read more

Reads a sequence of unsigned 32 bit integers from the underlying reader. Read more

Reads a sequence of unsigned 64 bit integers from the underlying reader. Read more

Reads a sequence of unsigned 128 bit integers from the underlying reader. Read more

Reads a sequence of signed 8 bit integers from the underlying reader. Read more

Reads a sequence of signed 16 bit integers from the underlying reader. Read more

Reads a sequence of signed 32 bit integers from the underlying reader. Read more

Reads a sequence of signed 64 bit integers from the underlying reader. Read more

Reads a sequence of signed 128 bit integers from the underlying reader. Read more

Reads a sequence of IEEE754 single-precision (4 bytes) floating point numbers from the underlying reader. Read more

👎 Deprecated since 1.2.0:

please use read_f32_into instead

DEPRECATED. Read more

Reads a sequence of IEEE754 double-precision (8 bytes) floating point numbers from the underlying reader. Read more

👎 Deprecated since 1.2.0:

please use read_f64_into instead

DEPRECATED. Read more

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.