我正在使用reqwest通过以下功能在API上获取请求:
async fn get_item_response(client: &Client, id: &str) -> Result<Response, reqwest::Error> {
let base = "http://someurl.com/item?={item_id}"
.replace("{item_id}", id);
client.get(&base).send()
}
async fn main() -> Result<(), Box<dyn Error>> {
let client = Client::new();
let response = get_item_response(&client, "1").await?;
}
响应是响应类型,而不是结果,这意味着如果不惊慌,我将无法检查是否发生了错误。 有没有办法访问结果?
答案 0 :(得分:5)
?
不是await
的组成部分。它本身是一个运算符,它将解开有效值或返回错误值,并将其传播到调用函数。如果没有它,则必须自己检查结果:
match get_item_response(&client, "1").await {
Ok(response) => /* do things with response */,
Err(e) => /* deal with error */,
}