Struct nightfly_twitchax_patch::HttpResponse
source · pub struct HttpResponse {
pub body: Vec<u8>,
pub status: StatusCode,
pub version: Version,
pub headers: HeaderMap<HeaderValue>,
pub url: Url,
pub redirect_chain: Vec<Url>,
}Expand description
Response of an http request
Fields§
§body: Vec<u8>body of response
status: StatusCodeThe response’s status
version: VersionThe response’s version
headers: HeaderMap<HeaderValue>The response’s headers
url: Urlurl of response
redirect_chain: Vec<Url>chain of urls if any redirection happened
Implementations§
source§impl HttpResponse
impl HttpResponse
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 this response, if known.
Reasons it may not be known:
- The server didn’t send a
content-lengthheader. - The response is compressed and automatically decoded (thus changing the actual decoded length).
Available on crate feature cookies only.
cookies only.Retrieve the cookies contained in the response.
Note that invalid ‘Set-Cookie’ headers will be ignored.
Optional
This requires the optional cookies feature to be enabled.
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 text(self) -> Result<String>
pub 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 REPLACEMENT CHARACTER.
Encoding is determinated from the charset parameter of Content-Type header,
and defaults to utf-8 if not presented.
Example
let content = nightfly::get("http://httpbin.org/range/26")
.text();
println!("text: {:?}", content);sourcepub fn text_with_charset(self, default_encoding: &str) -> Result<String>
pub 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 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 = nightfly::get("http://httpbin.org/range/26")
.text_with_charset("utf-8")
;
println!("text: {:?}", content);sourcepub fn json<T: DeserializeOwned>(self) -> Result<T>
pub fn json<T: DeserializeOwned>(self) -> Result<T>
Try to deserialize the response body as JSON.
Optional
This requires the optional json feature enabled.
Examples
// This `derive` requires the `serde` dependency.
#[derive(Deserialize)]
struct Ip {
origin: String,
}
let ip = nightfly::get("http://httpbin.org/ip")
.json::<Ip>()
;
println!("ip: {}", ip.origin);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.
sourcepub fn bytes(self) -> Result<Bytes>
pub fn bytes(self) -> Result<Bytes>
Get the full response body as Bytes.
Example
let bytes = nightfly::get("http://httpbin.org/ip")
.bytes()
;
println!("bytes: {:?}", bytes);sourcepub fn chunk(&mut self) -> Result<Option<Bytes>>
pub 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 = nightfly::get("https://hyper.rs");
while let Some(chunk) = res.chunk() {
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(nightfly::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(nightfly::StatusCode::BAD_REQUEST)
);
}
}
}