[][src]Trait isahc::ResponseExt

pub trait ResponseExt<T> {
    fn effective_uri(&self) -> Option<&Uri>;
fn metrics(&self) -> Option<&Metrics>;
fn copy_to(&mut self, writer: impl Write) -> Result<u64>
    where
        T: Read
;
fn text(&mut self) -> Result<String, Error>
    where
        T: Read
;
fn text_async(&mut self) -> Text<T>
    where
        T: AsyncRead + Unpin
;
fn json<D>(&mut self) -> Result<D, Error>
    where
        D: DeserializeOwned,
        T: Read
; fn copy_to_file(&mut self, path: impl AsRef<Path>) -> Result<u64>
    where
        T: Read
, { ... } }

Provides extension methods for working with HTTP responses.

Required methods

fn effective_uri(&self) -> Option<&Uri>

Get the effective URI of this response. This value differs from the original URI provided when making the request if at least one redirect was followed.

This information is only available if populated by the HTTP client that produced the response.

fn metrics(&self) -> Option<&Metrics>

If request metrics are enabled for this particular transfer, return a metrics object containing a live view of currently available data.

By default metrics are disabled and None will be returned. To enable metrics for a single request you can use RequestExt::metrics, or to enable it client-wide, you can use HttpClientBuilder::metrics.

fn copy_to(&mut self, writer: impl Write) -> Result<u64> where
    T: Read

Copy the response body into a writer.

Returns the number of bytes that were written.

fn text(&mut self) -> Result<String, Error> where
    T: Read

Get the response body as a string.

This method consumes the entire response body stream and can only be called once, unless you can rewind this response body.

Examples

use isahc::prelude::*;

let text = isahc::get("https://example.org")?.text()?;
println!("{}", text);

fn text_async(&mut self) -> Text<T> where
    T: AsyncRead + Unpin

Get the response body as a string asynchronously.

This method consumes the entire response body stream and can only be called once, unless you can rewind this response body.

fn json<D>(&mut self) -> Result<D, Error> where
    D: DeserializeOwned,
    T: Read

Deserialize the response body as JSON into a given type.

This method requires the json feature to be enabled.

Examples

use isahc::prelude::*;
use serde_json::Value;

let json: Value = isahc::get("https://httpbin.org/json")?.json()?;
println!("author: {}", json["slideshow"]["author"]);
Loading content...

Provided methods

fn copy_to_file(&mut self, path: impl AsRef<Path>) -> Result<u64> where
    T: Read

Write the response body to a file.

This method makes it convenient to download a file using a GET request and write it to a file synchronously in a single chain of calls.

Returns the number of bytes that were written.

Examples

use isahc::prelude::*;

isahc::get("https://httpbin.org/image/jpeg")?
    .copy_to_file("myimage.jpg")?;
Loading content...

Implementors

impl<T> ResponseExt<T> for Response<T>[src]

Loading content...