我编写了一个发送 POST 请求的函数:
pub async fn make_login_request(
client: &Client,
host: &String,
credentials: &HashMap<String, String>,
) -> Result<(), reqwest::Error> {
client
.post(
&(String::from("https://")
+ &String::from(host)
+ &String::from("/[URL]")),
)
.json(&credentials)
.header(
CONTENT_TYPE,
"application/json, text/javascript, */*; q=0.01",
)
.send()
.await?;
Ok(())
}
现在我必须验证响应。如果连接丢失,我需要中断并退出程序。如果是401这样的另一个错误码,我也需要退出,否则在200时显示成功。
打电话时如何处理所有这些情况make_login_request
?如果我这样称呼它
make_login_request(&client, &host, &credentials)
如果出现任何错误或返回/打印成功,我该如何抛出带有详细信息的错误?