Esempio n. 1
0
 public async static Task HttpGet(String url, TimeSpan timeout, ProxyPool proxyPool, Action<HttpHelper.HttpResult> handleCallback)
 {
     // запрашиваем пока не выполнится удачно или упадет
     while (true)
     {
         using (var proxy = new Proxy(proxyPool))
         {
             try
             {
                 proxy.LockAvaliableProxy();
                 var result = await HttpHelper.HttpGetWithCode(url, new HttpHelper.HttpParams() { Proxy = proxy.Address, Decode = true, Timeout = timeout });
                 handleCallback(result);
                 proxy.IsOk = true;
                 return;
             }
             catch (NoAvaliableProxiesException)
             {
                 // выбрасываем наверх, что прокси закончились
                 throw;
             }
             catch (Exception)
             {
                 proxy.IsOk = false;
             }
         }
     }
 }
Esempio n. 2
0
        public Proxy(ProxyPool proxyPool)
        {
            _proxyPool = proxyPool;

            IsOk = false;
        }
Esempio n. 3
0
 void FillProxy(String proxyFilePath)
 {
     var proxies = FileHelper.GetStringsFromFile(proxyFilePath);
     proxyPool = new ProxyPool(proxies, new TimeSpan(0, 0, 0, 0, Settings.Default.BenzinRequestDelay));
   
     Logger.Instance.Info(String.Format("Загружено {0} прокси из файла {1}", proxies.Count, proxyFilePath));
 }