diff --git a/clashN/clashN/Handler/CoreHandler.cs b/clashN/clashN/Handler/CoreHandler.cs index 8714589..f57eba6 100644 --- a/clashN/clashN/Handler/CoreHandler.cs +++ b/clashN/clashN/Handler/CoreHandler.cs @@ -78,6 +78,7 @@ public void LoadCore(Config config) private void CoreRestart(ProfileItem item) { CoreStop(); + Thread.Sleep(1000); CoreStart(item); } diff --git a/clashN/clashN/Handler/MainFormHandler.cs b/clashN/clashN/Handler/MainFormHandler.cs index e116725..43fb985 100644 --- a/clashN/clashN/Handler/MainFormHandler.cs +++ b/clashN/clashN/Handler/MainFormHandler.cs @@ -205,11 +205,11 @@ private async Task GetClashProxiesAsync(Config config, Action(result); - var url2 = $"{Global.httpProtocol}{Global.Loopback}:{config.ApiPort}/providers/proxies"; + var url2 = $"{GetApiUrl()}/providers/proxies"; var result2 = await HttpClientHelper.GetInstance().TryGetAsync(url2); var clashProviders = Utils.FromJson(result2); @@ -261,7 +261,7 @@ public void ClashProxiesDelayTest(bool blAll, List lstProxy, Action< { return; } - var urlBase = $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}/proxies"; + var urlBase = $"{GetApiUrl()}/proxies"; urlBase += @"/{0}/delay?timeout=10000&url=" + LazyConfig.Instance.Config.ConstItem.speedPingTestUrl; List tasks = new List(); @@ -320,7 +320,7 @@ public async void ClashSetActiveProxy(string name, string nameNode) { try { - var url = $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}/proxies/{name}"; + var url = $"{GetApiUrl()}/proxies/"; Dictionary headers = new Dictionary(); headers.Add("name", nameNode); await HttpClientHelper.GetInstance().PutAsync(url, headers); @@ -341,7 +341,7 @@ public void ClashConfigUpdate(Dictionary headers) return; } - var urlBase = $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}/configs"; + var urlBase = $"{GetApiUrl()}/configs"; await HttpClientHelper.GetInstance().PatchAsync(urlBase, headers); }); @@ -352,7 +352,7 @@ public async void ClashConfigReload(string filePath) ClashConnectionClose(""); try { - var url = $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}/configs?force=true"; + var url = $"{GetApiUrl()}/configs?force=true"; Dictionary headers = new Dictionary(); headers.Add("path", filePath); await HttpClientHelper.GetInstance().PutAsync(url, headers); @@ -371,7 +371,7 @@ private async Task GetClashConnectionsAsync(Config config, Action(result); @@ -387,7 +387,7 @@ public async void ClashConnectionClose(string id) { try { - var url = $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}/connections/{id}"; + var url = $"{GetApiUrl()}/connections/"; await HttpClientHelper.GetInstance().DeleteAsync(url); } catch (Exception ex) @@ -395,5 +395,10 @@ public async void ClashConnectionClose(string id) Utils.SaveLog(ex.Message, ex); } } + + private string GetApiUrl() + { + return $"{Global.httpProtocol}{Global.Loopback}:{LazyConfig.Instance.Config.ApiPort}"; + } } } \ No newline at end of file