You need to enable JavaScript to run this app. Rust中如何拷贝对象?reqwest响应调用消费self方法报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Rust中如何拷贝对象?reqwest响应调用消费self方法报错如何解决

问题解决思路
  • 错误根源:
    1. reqwest::blocking::get 返回值为 Result<reqwest::blocking::Response, reqwest::Error> 类型,该类型未实现 Clone trait,直接调用 .clone() 会触发E0599错误
    2. 原代码逻辑即使支持克隆,两次对Result调用.unwrap()也属于多余操作,完全没有必要
正确实现代码

你只需要先取出单次请求的Response实例,再分别读取状态和内容即可,全程仅发起一次HTTP请求:

fn main() {
    // 先拿到Response实例,仅unwrap一次
    let resp = reqwest::blocking::get("https://www.rust-lang.org").unwrap();
    // 先获取状态:status()方法仅需&self引用,不会消费Response
    let status = resp.status();
    // 再获取HTML内容:text()会消费self,放在最后调用即可
    let rawhtml = resp.text().unwrap();

    println!("status: {}\n\n", status);
    println!("{}", rawhtml);
}
补充说明

如果需要更健壮的错误处理,可以把unwrap()替换为match或if let分支逻辑,避免请求失败时程序直接panic。

内容的提问来源于stack exchange,提问作者Papu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:18:03