mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-06 02:53:45 +08:00
refactor: improve request handling and response processing in MihomoManager
This commit is contained in:
parent
0f60d84f6c
commit
4bf166986d
@ -49,7 +49,7 @@ impl MihomoManager {
|
|||||||
url: String,
|
url: String,
|
||||||
data: Option<serde_json::Value>,
|
data: Option<serde_json::Value>,
|
||||||
) -> Result<serde_json::Value, String> {
|
) -> Result<serde_json::Value, String> {
|
||||||
let response = reqwest::ClientBuilder::new()
|
let client_response = reqwest::ClientBuilder::new()
|
||||||
.default_headers(self.headers.clone())
|
.default_headers(self.headers.clone())
|
||||||
.no_proxy()
|
.no_proxy()
|
||||||
.timeout(Duration::from_secs(2))
|
.timeout(Duration::from_secs(2))
|
||||||
@ -68,9 +68,13 @@ impl MihomoManager {
|
|||||||
.json(&data.unwrap_or(json!({})))
|
.json(&data.unwrap_or(json!({})))
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_string())?
|
.map_err(|e| e.to_string())?;
|
||||||
.json::<serde_json::Value>()
|
|
||||||
.await
|
let response = if method != "PUT" {
|
||||||
|
client_response.json::<serde_json::Value>().await
|
||||||
|
} else {
|
||||||
|
client_response.text().await.map(|text| json!(text))
|
||||||
|
}
|
||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
@ -97,14 +101,15 @@ impl MihomoManager {
|
|||||||
"path": clash_config_path,
|
"path": clash_config_path,
|
||||||
});
|
});
|
||||||
let response = self.send_request("PUT", url, Some(payload)).await?;
|
let response = self.send_request("PUT", url, Some(payload)).await?;
|
||||||
if response["code"] == 204 {
|
println!("put_configs_force::{:?}", response);
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
// if response["code"] == 204 {
|
||||||
Err(response["message"]
|
// Ok(())
|
||||||
.as_str()
|
// } else {
|
||||||
.unwrap_or("unknown error")
|
// Err(response["message"]
|
||||||
.to_string())
|
// .as_str()
|
||||||
}
|
// .unwrap_or("unknown error")
|
||||||
|
// .to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn patch_configs(&self, config: serde_json::Value) -> Result<(), String> {
|
pub async fn patch_configs(&self, config: serde_json::Value) -> Result<(), String> {
|
||||||
@ -127,7 +132,10 @@ impl MihomoManager {
|
|||||||
timeout: i32,
|
timeout: i32,
|
||||||
) -> Result<serde_json::Value, String> {
|
) -> Result<serde_json::Value, String> {
|
||||||
let test_url = test_url.unwrap_or("http://cp.cloudflare.com/generate_204".to_string());
|
let test_url = test_url.unwrap_or("http://cp.cloudflare.com/generate_204".to_string());
|
||||||
let url = format!("{}/proxies/{}/delay?url={}&timeout={}", self.mihomo_server, name, test_url, timeout);
|
let url = format!(
|
||||||
|
"{}/proxies/{}/delay?url={}&timeout={}",
|
||||||
|
self.mihomo_server, name, test_url, timeout
|
||||||
|
);
|
||||||
let response = self.send_request("GET", url, None).await?;
|
let response = self.send_request("GET", url, None).await?;
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user