private void RecycleCurrentProxy() { if (_currentProxy == null) { return; } HttpProxyEntity currentProxy = _currentProxy; new Async(() => { API.SDK.Extend.HttpProxy.Instance.RecycleProxy(Utility.EncryptHelper.Encrypt(currentProxy.ProxyId)); Output("AutoProxyManager: RecycleCurrentProxy " + currentProxy.ToString()); }).Start(); }
private HttpProxyStartStatus UseNewProxy() { if (IsConnectInternet()) { try { while (badProxyRetry < BadProxyRetryMax) { RecycleCurrentProxy(); // 先回收 var serverRes = API.SDK.Extend.HttpProxy.Instance.GetProxy(TokenManager.CachedToken, GlobalCache.CurrentTaskId); if (serverRes.IsSuccess) { _currentProxy = serverRes.Data; _currentProxy.IP = Utility.EncryptHelper.Decrypt(_currentProxy.IP); Output("AutoProxyManager: UseNewProxy " + _currentProxy.ToString()); if (UseCurrentProxy()) { return(HttpProxyStartStatus.OK); } } else { Output($"{serverRes.Error}, {serverRes.Error},重试{badProxyRetry + 1}/{BadProxyRetryMax + 1}...", true); } badProxyRetry++; } } catch (Exception ex) { Log.Default.Error(ex); } return(HttpProxyStartStatus.ProxyServiceInvalid); } else { return(HttpProxyStartStatus.NetworkDown); } }