pub struct Response(_);
Implementations§
source§impl Response
impl Response
pub fn new(resp: UreqResponse) -> Self
sourcepub fn get_url(&self) -> &str
pub fn get_url(&self) -> &str
The URL we ended up at. This can differ from the request url when we have followed redirects.
sourcepub fn http_version(&self) -> &str
pub fn http_version(&self) -> &str
The http version: HTTP/1.1
sourcepub fn status_text(&self) -> &str
pub fn status_text(&self) -> &str
The status text: OK
The HTTP spec allows for non-utf8 status texts. This uses from_utf8_lossy to convert such lines to &str.
sourcepub fn header(&self, name: &str) -> Option<&str>
pub fn header(&self, name: &str) -> Option<&str>
The header value for the given name, or None if not found.
For historical reasons, the HTTP spec allows for header values to be encoded using encodings like iso-8859-1. Such encodings means the values are not possible to interpret as utf-8.
In case the header value can’t be read as utf-8, this function
returns None
(while the name is visible in Response::headers_names()
).
sourcepub fn headers_names(&self) -> Vec<String> ⓘ
pub fn headers_names(&self) -> Vec<String> ⓘ
A list of the header names in this response. Lowercased to be uniform.
It’s possible for a header name to be returned by this function, and
still give a None
value. See Response::header()
for an explanation
as to why.
sourcepub fn all(&self, name: &str) -> Vec<&str> ⓘ
pub fn all(&self, name: &str) -> Vec<&str> ⓘ
All headers corresponding values for the give name, or empty vector.
sourcepub fn content_type(&self) -> &str
pub fn content_type(&self) -> &str
The content type part of the “Content-Type” header without the charset.
sourcepub fn into_reader(self) -> Box<dyn Read + Send + Sync + 'static>
pub fn into_reader(self) -> Box<dyn Read + Send + Sync + 'static>
Turn this response into a impl Read
of the body.
- If
Transfer-Encoding: chunked
, the returned reader will unchunk it and anyContent-Length
header is ignored. - If
Content-Length
is set, the returned reader is limited to this byte length regardless of how many bytes the server sends. - If no length header, the reader is until server stream end.
Note: If you use read_to_end()
on the resulting reader, a malicious
server might return enough bytes to exhaust available memory. If you’re
making requests to untrusted servers, you should use .take()
to
limit the response bytes read.
sourcepub fn into_string(self) -> Result<String>
pub fn into_string(self) -> Result<String>
Turn this response into a String of the response body. By default uses utf-8
,
but can work with charset, see below.
This is potentially memory inefficient for large bodies since the
implementation first reads the reader to end into a Vec<u8>
and then
attempts to decode it using the charset.
If the response is larger than 10 megabytes, this will return an error.
sourcepub fn into_json<T: DeserializeOwned>(self) -> Result<T>
pub fn into_json<T: DeserializeOwned>(self) -> Result<T>
Read the body of this response into a serde_json::Value, or any other type that implements the serde::Deserialize trait.
You must use either a type annotation as shown below (message: Message
), or the
[turbofish operator] (::<Type>
) so Rust knows what type you are trying to read.