From cbeabbafb5ee46bc6bef46d7c69bf456af1ea1be Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sun, 14 Sep 2025 21:44:03 +0800 Subject: perf(httpconnector): simplify handle_response --- src/client/connector/connectors/httpconnector.rs | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src/client') 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 std::result::Result>( + fn handle_response RequestBuilder>( &self, resp: F, ) -> Result<::Ok, ::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.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 { @@ -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 { - 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, + }, } } } -- cgit v1.2.3