Откуда переменная, переданная в Resq::read_to_string от Reqwest, получает данные?

Я изучаю Rust и играю с этим примером, чтобы выполнить запрос HTTP GET и затем отобразить данные:

extern crate reqwest;
use std::io::Read;

fn run() -> Result<()> {
    let mut res = reqwest::get("http://httpbin.org/get")?;
    let mut body = String::new();
    res.read_to_string(&mut body)?;

    println!("Status: {}", res.status());
    println!("Headers:\n{:#?}", res.headers());
    println!("Body:\n{}", body);

    Ok(())
}

Я не могу понять, как переменная body на самом деле в конечном итоге с правильными данными. Для заголовков и статуса я вижу связанные функции, но для данных тела он просто использует read_to_string для всех данных?

1 ответ

Решение

res объект имеет read_to_string() метод, который сохраняет ответ в String что вы передаете это в

res.read_to_string(&mut body);

Редактировать: импортировано из моего комментария:

Документация reqwest::Response 0.6.2 для Read за Response:

Прочитайте текст ответа

чего-то не хватает в документации текущей версии.

Другие вопросы по тегам