在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之間)。如果是成功,我們繼續處理響應文本。否則,我們打印錯誤狀態碼。