summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-01 21:16:52 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-01 21:16:52 +0800
commitbc6b38c1b627c6dcdd50896ded4148dd6e0734ba (patch)
tree98438f790e68e447dd95abd570826199dd4758f0
parentad6eb932bc7a2158627d83a9f8a1785b89338afe (diff)
httpconnector: properly parse url
-rw-r--r--Cargo.lock1
-rw-r--r--Cargo.toml1
-rw-r--r--src/client/connector/connectors/httpconnector.rs16
3 files changed, 9 insertions, 9 deletions
diff --git a/Cargo.lock b/Cargo.lock
index ca49573..e640bde 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -792,6 +792,7 @@ version = "0.1.0"
dependencies = [
"reqwest",
"tokio",
+ "url",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 81e4123..8c9eece 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,6 +6,7 @@ edition = "2024"
[dependencies]
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["blocking"] }
+url = { version = "2" }
[[bin]]
name = "client"
diff --git a/src/client/connector/connectors/httpconnector.rs b/src/client/connector/connectors/httpconnector.rs
index 2bdb36a..6d501cc 100644
--- a/src/client/connector/connectors/httpconnector.rs
+++ b/src/client/connector/connectors/httpconnector.rs
@@ -1,24 +1,22 @@
-use std::net::AddrParseError;
-
use crate::connector::*;
-pub(crate) struct HTTPConnector<'a> {
+pub(crate) struct HTTPConnector {
prev: String,
- url: &'a str,
+ url: reqwest::Url,
channel: Channel<Self>,
}
-impl<'a> HTTPConnector<'a> {
- pub fn new(url: &'a str) -> Result<Self, AddrParseError> {
+impl HTTPConnector {
+ pub fn new(url: &str) -> Result<Self, url::ParseError> {
Ok(Self {
prev: String::new(),
- url,
+ url: reqwest::Url::parse(url)?,
channel: Channel::new(),
})
}
}
-impl Connection for HTTPConnector<'_> {
+impl Connection for HTTPConnector {
type Err = reqwest::Error;
fn test_connection(&self) -> std::result::Result<bool, reqwest::Error> {
@@ -26,7 +24,7 @@ impl Connection for HTTPConnector<'_> {
}
async fn update(&self) -> Option<Result<Self::Success, Self::Err>> {
- let res = match reqwest::get(self.url).await {
+ let res = match reqwest::get(self.url.clone()).await {
Ok(resp) => match resp.text().await {
Ok(text) => text,
Err(e) => return Some(Err(e)),