mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 07:03:45 +08:00
fix: socket-based mihomo communication can not switch profile
This commit is contained in:
parent
3488d89b7d
commit
d4a42f4ede
@ -36,21 +36,28 @@ impl UnixClient {
|
|||||||
) -> Result<Value, E> {
|
) -> Result<Value, E> {
|
||||||
let uri = self.generate_unix_path(socket_path.as_str(), path).await;
|
let uri = self.generate_unix_path(socket_path.as_str(), path).await;
|
||||||
|
|
||||||
let mut request_builder = Request::builder().method(method).uri(uri);
|
let mut request_builder = Request::builder().method(method.clone()).uri(uri);
|
||||||
|
|
||||||
let body_bytes = if let Some(body) = body {
|
let body_bytes = if let Some(body) = body {
|
||||||
request_builder = request_builder.header(
|
if method != Method::PUT {
|
||||||
HeaderName::from_static("Content-Type"),
|
request_builder = request_builder.header(
|
||||||
HeaderValue::from_static("application/json"),
|
HeaderName::from_static("Content-Type"),
|
||||||
);
|
HeaderValue::from_static("application/json"),
|
||||||
|
);
|
||||||
|
}
|
||||||
Bytes::from(serde_json::to_vec(&body)?)
|
Bytes::from(serde_json::to_vec(&body)?)
|
||||||
} else {
|
} else {
|
||||||
Bytes::new()
|
Bytes::new()
|
||||||
};
|
};
|
||||||
|
|
||||||
let request = request_builder.body(Full::new(body_bytes))?;
|
let request = request_builder.body(Full::new(body_bytes))?;
|
||||||
|
|
||||||
let response = self.client.lock().await.request(request).await?;
|
let response = self.client.lock().await.request(request).await?;
|
||||||
|
|
||||||
|
if method == Method::PUT {
|
||||||
|
let json_value = serde_json::Value::Null;
|
||||||
|
return Ok(json_value);
|
||||||
|
}
|
||||||
|
|
||||||
let body_bytes = response.into_body().collect().await?.to_bytes();
|
let body_bytes = response.into_body().collect().await?.to_bytes();
|
||||||
let json_value = serde_json::from_slice(&body_bytes)?;
|
let json_value = serde_json::from_slice(&body_bytes)?;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user