pub struct Response { /* private fields */ }
Expand description
A Response to a submitted Request
.
Implementations§
Source§impl Response
impl Response
Sourcepub fn status(&self) -> StatusCode
pub fn status(&self) -> StatusCode
Get the StatusCode
of this Response
.
Sourcepub fn headers_mut(&mut self) -> &mut HeaderMap
pub fn headers_mut(&mut self) -> &mut HeaderMap
Get a mutable reference to the Headers
of this Response
.
Sourcepub fn content_length(&self) -> Option<u64>
pub fn content_length(&self) -> Option<u64>
Get the content length of the response, if it is known.
This value does not directly represents the value of the Content-Length
header, but rather the size of the response’s body. To read the header’s
value, please use the Response::headers
method instead.
Reasons it may not be known:
- The response does not include a body (e.g. it responds to a
HEAD
request). - The response is gzipped and automatically decoded (thus changing the actual decoded length).
Sourcepub fn remote_addr(&self) -> Option<SocketAddr>
pub fn remote_addr(&self) -> Option<SocketAddr>
Get the remote address used to get this Response
.
Sourcepub fn extensions(&self) -> &Extensions
pub fn extensions(&self) -> &Extensions
Returns a reference to the associated extensions.
Sourcepub fn extensions_mut(&mut self) -> &mut Extensions
pub fn extensions_mut(&mut self) -> &mut Extensions
Returns a mutable reference to the associated extensions.
Sourcepub async fn text(self) -> Result<String>
pub async fn text(self) -> Result<String>
Get the full response text.
This method decodes the response body with BOM sniffing
and with malformed sequences replaced with the
char::REPLACEMENT_CHARACTER
.
Encoding is determined from the charset
parameter of Content-Type
header,
and defaults to utf-8
if not presented.
Note that the BOM is stripped from the returned String.
§Note
If the charset
feature is disabled the method will only attempt to decode the
response as UTF-8, regardless of the given Content-Type
§Example
let content = reqwest::get("http://httpbin.org/range/26")
.await?
.text()
.await?;
println!("text: {content:?}");
Sourcepub async fn text_with_charset(self, default_encoding: &str) -> Result<String>
pub async fn text_with_charset(self, default_encoding: &str) -> Result<String>
Get the full response text given a specific encoding.
This method decodes the response body with BOM sniffing
and with malformed sequences replaced with the char::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.
Note that the BOM is stripped from the returned String.
§Optional
This requires the optional encoding_rs
feature enabled.
§Example
let content = reqwest::get("http://httpbin.org/range/26")
.await?
.text_with_charset("utf-8")
.await?;
println!("text: {content:?}");
Sourcepub async fn bytes(self) -> Result<Bytes>
pub async fn bytes(self) -> Result<Bytes>
Get the full response body as Bytes
.
§Example
let bytes = reqwest::get("http://httpbin.org/ip")
.await?
.bytes()
.await?;
println!("bytes: {bytes:?}");
Sourcepub async fn chunk(&mut self) -> Result<Option<Bytes>>
pub async fn chunk(&mut self) -> Result<Option<Bytes>>
Stream a chunk of the response body.
When the response body has been exhausted, this will return None
.
§Example
let mut res = reqwest::get("https://hyper.rs").await?;
while let Some(chunk) = res.chunk().await? {
println!("Chunk: {chunk:?}");
}
Sourcepub fn error_for_status(self) -> Result<Self>
pub fn error_for_status(self) -> Result<Self>
Turn a response into an error if the server returned an error.
§Example
fn on_response(res: Response) {
match res.error_for_status() {
Ok(_res) => (),
Err(err) => {
// asserting a 400 as an example
// it could be any status between 400...599
assert_eq!(
err.status(),
Some(reqwest::StatusCode::BAD_REQUEST)
);
}
}
}
Sourcepub fn error_for_status_ref(&self) -> Result<&Self>
pub fn error_for_status_ref(&self) -> Result<&Self>
Turn a reference to a response into an error if the server returned an error.
§Example
fn on_response(res: &Response) {
match res.error_for_status_ref() {
Ok(_res) => (),
Err(err) => {
// asserting a 400 as an example
// it could be any status between 400...599
assert_eq!(
err.status(),
Some(reqwest::StatusCode::BAD_REQUEST)
);
}
}
}