Struct reqwest::Response [] [src]

pub struct Response { /* fields omitted */ }

A Response to a submitted Request.

Methods

impl Response
[src]

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 StatusCode of this Response.

Examples

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());
}
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::PayloadTooLarge => {
        println!("Request payload is too large!");
    }
    s => println!("Received response status: {:?}", s),
};

Get the Headers of this Response.

Example

Checking the Content-Length header before reading the response body.

let client = Client::new()?;
let mut resp = client.head("http://httpbin.org/bytes/3000")?.send()?;
if resp.status().is_success() {
    let len = resp.headers().get::<ContentLength>()
                .map(|ct_len| **ct_len)
                .unwrap_or(0);
    // limit 1mb response
    if len <= 1_000_000 {
        let mut buf = Vec::with_capacity(len as usize);
        let mut resp = reqwest::get("http://httpbin.org/bytes/3000")?;
        if resp.status().is_success() {
            ::std::io::copy(&mut resp, &mut buf)?;
        }
    }
}

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.

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

Trait Implementations

impl Debug for Response
[src]

Formats the value using the given formatter.

impl Read for Response
[src]

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

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

Determines if this Reader can work with buffers of uninitialized memory. Read more

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

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

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

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

the semantics of a partial read/write of where errors happen is currently unclear and may change

Transforms this Read instance to an Iterator over chars. Read more

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

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