Struct reqwest::Response [] [src]

pub struct Response { /* fields omitted */ }

A Response to a submitted Request.

Methods

impl Response
[src]

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

[src]

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

[src]

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

[src]

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.

[src]

Get the response text.

Example

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

[src]

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

[src]

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]

[src]

Formats the value using the given formatter.

impl Read for Response
[src]

[src]

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

[src]

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

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

1.0.0
[src]

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

1.0.0
[src]

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

1.6.0
[src]

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

1.0.0
[src]

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

1.0.0
[src]

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

[src]

🔬 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 [char]s. Read more

1.0.0
[src]

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

1.0.0
[src]

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