Struct reqwest::blocking::Response [−][src]
pub struct Response { /* fields omitted */ }
Expand description
A Response to a submitted Request
.
Implementations
Get the StatusCode
of this Response
.
Examples
Checking for general status class:
let resp = reqwest::blocking::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::blocking::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::blocking::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)?;
}
Get a mutable reference to the Headers
of this Response
.
Get the final Url
of this Response
.
Example
let resp = reqwest::blocking::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::blocking::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).
Get the full response body as Bytes
.
Example
let bytes = reqwest::blocking::get("http://httpbin.org/ip")?.bytes()?;
println!("bytes: {:?}", bytes);
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::blocking::get("http://httpbin.org/range/26")?.text()?;
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 encoding_rs
docs.
Example
let content = reqwest::blocking::get("http://httpbin.org/range/26")?
.text_with_charset("utf-8")?;
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::blocking::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::blocking::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::blocking::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
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
can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
read_initializer
)Determines if this Read
er 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, appending them to buf
. Read more
Read the exact number of bytes required to fill buf
. Read more
Creates a “by reference” adapter for this instance of Read
. Read more
Creates an adapter which will chain this stream with another. Read more
Auto Trait Implementations
impl !RefUnwindSafe for Response
impl !UnwindSafe for Response
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
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