[][src]Struct reqwest::Response

pub struct Response { /* fields omitted */ }

A Response to a submitted Request.

Methods

impl Response
[src]

pub fn url(&self) -> &Url
[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");

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

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

pub fn status(&self) -> StatusCode
[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::PAYLOAD_TOO_LARGE => {
        println!("Request payload is too large!");
    }
    s => println!("Received response status: {:?}", s),
};

pub fn headers(&self) -> &HeaderMap
[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(CONTENT_LENGTH)
                .and_then(|ct_len| ct_len.to_str().ok())
                .and_then(|ct_len| ct_len.parse().ok())
                .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)?;
        }
    }
}

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

Get the HTTP Version of this Response.

pub fn json<T: DeserializeOwned>(&mut self) -> Result<T>
[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. serde_json::from_reader: https://docs.serde.rs/serde_json/fn.from_reader.html

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

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.

pub fn copy_to<W: ?Sized>(&mut self, w: &mut W) -> Result<u64> where
    W: Write
[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());

pub fn error_for_status(self) -> Result<Self>
[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::BAD_REQUEST));
}

Trait Implementations

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

impl Debug for Response
[src]

impl Read for Response
[src]

unsafe fn initializer(&self) -> Initializer
[src]

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

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

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0
[src]

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

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0
[src]

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

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0
[src]

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

fn by_ref(&mut self) -> &mut Self
1.0.0
[src]

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

fn bytes(self) -> Bytes<Self>
1.0.0
[src]

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

fn chain<R>(self, next: R) -> Chain<Self, R> where
    R: Read
1.0.0
[src]

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

fn take(self, limit: u64) -> Take<Self>
1.0.0
[src]

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

Auto Trait Implementations

impl Send for Response

impl !Sync for Response

Blanket Implementations

impl<T> From for T
[src]

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

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

type Error = !

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

The type returned in the event of a conversion error.

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

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

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

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

The type returned in the event of a conversion error.

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

impl<R> ReadBytesExt for R where
    R: Read + ?Sized

fn read_u8(&mut self) -> Result<u8, Error>

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

fn read_i8(&mut self) -> Result<i8, Error>

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

fn read_u16<T>(&mut self) -> Result<u16, Error> where
    T: ByteOrder, 

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

fn read_i16<T>(&mut self) -> Result<i16, Error> where
    T: ByteOrder, 

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

fn read_u24<T>(&mut self) -> Result<u32, Error> where
    T: ByteOrder, 

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

fn read_i24<T>(&mut self) -> Result<i32, Error> where
    T: ByteOrder, 

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

fn read_u32<T>(&mut self) -> Result<u32, Error> where
    T: ByteOrder, 

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

fn read_i32<T>(&mut self) -> Result<i32, Error> where
    T: ByteOrder, 

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

fn read_u48<T>(&mut self) -> Result<u64, Error> where
    T: ByteOrder, 

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

fn read_i48<T>(&mut self) -> Result<i64, Error> where
    T: ByteOrder, 

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

fn read_u64<T>(&mut self) -> Result<u64, Error> where
    T: ByteOrder, 

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

fn read_i64<T>(&mut self) -> Result<i64, Error> where
    T: ByteOrder, 

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

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error> where
    T: ByteOrder, 

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

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error> where
    T: ByteOrder, 

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

fn read_f32<T>(&mut self) -> Result<f32, Error> where
    T: ByteOrder, 

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

fn read_f64<T>(&mut self) -> Result<f64, Error> where
    T: ByteOrder, 

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

fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error> where
    T: ByteOrder, 

Deprecated since 1.2.0:

please use read_f32_into instead

DEPRECATED. Read more

fn read_f64_into<T>(&mut self, dst: &mut [f64]) -> Result<(), Error> where
    T: ByteOrder, 

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

fn read_f64_into_unchecked<T>(&mut self, dst: &mut [f64]) -> Result<(), Error> where
    T: ByteOrder, 

Deprecated since 1.2.0:

please use read_f64_into instead

DEPRECATED. Read more

impl<T> Erased for T