summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-14 21:44:03 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-14 21:44:03 +0800
commitcbeabbafb5ee46bc6bef46d7c69bf456af1ea1be (patch)
tree8c2dc9bd21599be1c66c77fed9dcb4fa7995b0ba /src
parent6bdc5a7c6d9d986115e4e7a5214234c10ce123b2 (diff)
perf(httpconnector): simplify handle_response
Diffstat (limited to 'src')
-rw-r--r--src/client/connector/connectors/httpconnector.rs21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/client/connector/connectors/httpconnector.rs b/src/client/connector/connectors/httpconnector.rs
index 8052b25..28ff4a0 100644
--- a/src/client/connector/connectors/httpconnector.rs
+++ b/src/client/connector/connectors/httpconnector.rs
@@ -1,6 +1,6 @@
use reqwest::{
Error, StatusCode, Url,
- blocking::{Client, Response},
+ blocking::{Client, RequestBuilder},
};
use crate::connector::*;
@@ -37,11 +37,11 @@ impl HTTPConnector {
})
}
- fn handle_response<F: Fn() -> std::result::Result<Response, Error>>(
+ fn handle_response<F: Fn() -> RequestBuilder>(
&self,
resp: F,
) -> Result<<HTTPConnector as Connection>::Ok, <HTTPConnector as Connection>::Err> {
- match resp() {
+ match resp().send() {
Ok(resp) => match resp.status() {
StatusCode::TOO_MANY_REQUESTS => {
sleep(Duration::from_secs(5));
@@ -82,7 +82,7 @@ impl Connection for HTTPConnector {
// consider StatusCode::NOT_MODIFIED
fn update(&self) -> Result<Self::Ok, Self::Err> {
- self.handle_response(|| self.client.get(self.pull_url.as_str()).send())
+ self.handle_response(|| self.client.get(self.pull_url.as_str()))
}
fn ntfy(&self, data: String) -> Result<Self::Ok, Self::Err> {
@@ -90,7 +90,6 @@ impl Connection for HTTPConnector {
self.client
.post(self.ntfy_url.as_str())
.body(data.to_owned())
- .send()
})
}
@@ -108,14 +107,12 @@ impl Connection for HTTPConnector {
}
fn get_ip(&self) -> Option<IpAddr> {
- match self.handle_response(|| self.client.get(self.ip_getter_url.as_str()).send()) {
+ match self.handle_response(|| self.client.get(self.ip_getter_url.as_str())) {
Result::Ok(ip) => Some(ip.parse().ok()?),
- Result::Err(_) => {
- match self.handle_response(|| self.client.get("ifconfig.me").send()) {
- Ok(ip) => Some(ip.parse().ok()?),
- Err(_) => None,
- }
- }
+ Result::Err(_) => match self.handle_response(|| self.client.get("ifconfig.me")) {
+ Ok(ip) => Some(ip.parse().ok()?),
+ Err(_) => None,
+ },
}
}
}