温馨提示×

rust reqwest怎样处理错误响应

小樊
84
2024-11-21 17:10:36
栏目: 编程语言

在Rust中,使用reqwest库处理错误响应非常简单。当发送HTTP请求时,reqwest会返回一个Result类型,其中包含成功或失败的结果。你可以使用?操作符来处理可能的错误。

以下是一个简单的示例,展示了如何使用reqwest处理错误响应:

use reqwest::Error;

#[tokio::main]
async fn main() -> Result<(), Error> {
    // 发送GET请求
    let response = reqwest::get("https://api.example.com/data")
        .await?
        .text()
        .await?;

    // 处理响应文本
    println!("Response: {}", response);

    Ok(())
}

在这个示例中,我们首先使用reqwest::get()发送一个GET请求。然后,我们使用await?操作符等待请求完成,并将结果解包为response。如果请求成功,我们将继续处理响应文本。如果在任何阶段发生错误,?操作符将引发错误,并允许我们在main函数中处理它。

你还可以使用response.error_for_status()方法检查响应的状态码,并在状态码表示错误时引发错误。例如:

use reqwest::Error;

#[tokio::main]
async fn main() -> Result<(), Error> {
    let response = reqwest::get("https://api.example.com/data")
        .await?;

    if response.status().is_success() {
        let response_text = response.text().await?;
        println!("Response: {}", response_text);
    } else {
        eprintln!("Error: {}", response.status());
    }

    Ok(())
}

在这个示例中,我们首先检查响应的状态码是否为成功(即状态码在200-299之间)。如果是成功,我们继续处理响应文本。否则,我们打印错误状态码。

0