传递给Reqwest的Result :: read_to_string的变量从何处获取数据?

时间:2019-08-14 10:02:09

标签: rust 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 个答案:

答案 0 :(得分:1)

res对象具有一个read_to_string()方法,该方法将响应存储到您将其传递到的String

res.read_to_string(&mut body);

编辑:从我的评论中导入

reqwest::Response 0.6.2 documentationRead的{​​{1}}状态:

  

阅读回复的正文

它似乎在当前版本的文档中丢失了。