[][src]Trait isahc::ReadResponseExt

pub trait ReadResponseExt<T: Read> {
    pub fn copy_to<W: Write>(&mut self, writer: W) -> Result<u64>;
pub fn text(&mut self) -> Result<String>;
pub fn json<D>(&mut self) -> Result<D, Error>
    where
        D: DeserializeOwned
; pub fn copy_to_file<P: AsRef<Path>>(&mut self, path: P) -> Result<u64> { ... } }

Provides extension methods for consuming HTTP response streams.

Required methods

pub fn copy_to<W: Write>(&mut self, writer: W) -> Result<u64>[src]

Copy the response body into a writer.

Returns the number of bytes that were written.

Examples

Copying the response into an in-memory buffer:

use isahc::prelude::*;

let mut buf = vec![];
isahc::get("https://example.org")?.copy_to(&mut buf)?;
println!("Read {} bytes", buf.len());

pub fn text(&mut self) -> Result<String>[src]

Read the response body as a string.

The encoding used to decode the response body into a string depends on the response. If the body begins with a Byte Order Mark (BOM), then UTF-8, UTF-16LE or UTF-16BE is used as indicated by the BOM. If no BOM is present, the encoding specified in the charset parameter of the Content-Type header is used if present. Otherwise UTF-8 is assumed.

If the response body contains any malformed characters or characters not representable in UTF-8, the offending bytes will be replaced with U+FFFD REPLACEMENT CHARACTER, which looks like this: �.

This method consumes the entire response body stream and can only be called once.

Availability

This method is only available when the text-decoding feature is enabled, which it is by default.

Examples

use isahc::prelude::*;

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

pub fn json<D>(&mut self) -> Result<D, Error> where
    D: DeserializeOwned
[src]

Deserialize the response body as JSON into a given type.

Availability

This method is only available when the json feature is 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

pub fn copy_to_file<P: AsRef<Path>>(&mut self, path: P) -> Result<u64>[src]

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: Read> ReadResponseExt<T> for Response<T>[src]

Loading content...