Имеется метод, который коннектится по заданному url через прокси.
public void myGetContent(int startRange, int endRange, String threadName) throws Exception{
//..некоторый код
ProxyParser proxyParser = new ProxyParser();
//Массив с ip и портами
ArrayList<String> proxyList = proxyParser.getProxyRowsArray();
//устанавливаем значение proxy
setProxy(proxyList.get(0), Integer.parseInt(proxyList.get(1)));
int i = startRange;
while (i < endRange){
Thread.sleep(3000);
startTime = System.currentTimeMillis();
URL website = new URL("http://my-url.com/...&DocNumber" + i);
//Открываем соединение через прокси
HttpURLConnection connection = (HttpURLConnection) website.openConnection(proxy);
ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());
FileOutputStream fos =
new FileOutputStream(+ i /*НАЗВАНИЕ СОХРАНЯЕМОГО ДОКУМЕНТА */
+ ".html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
//Размер загруженного файла
size = fos.getChannel().size();
fos.close();
//.....некоторый код
i ++;
}
}
Как сделать реконнект в случае возникновения TimeoutException'а или какого-либо другого исключения при наличии ArrayList'а со значениями ip и port?
Можно попробовать заключить блок кода подключения в цикл:
boolean isConnect = false;
while(!isConnect) {
try {
// код подключения, где может возникнуть TimeoutException
isConnect = true; // до сюда не дойдёт, если возникло исключение
catch(TimeoutException ex) {
// возможно сообщение о повторной попытки подключения
isConnect = false;
}
}
Тогда из цикла не выйдет, пока не произойдёт подключение, также здесь можно задать количество попыток.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Размер (бит) boolean 8 (в массивах), 32 (не в массивах используется int)Вот понимаю что всегда int это 32 бита
Нужно получить формат времени ввиде: 2019-08-22T13:26:36447019Z, но как это сделать что-то не вкурю
Клиент отправляет на сервер картинкуНа сервере в конфиге прописан каталог для сохранения изображения:
Моя задача реализовать PATCH метод контроллераРассмотрим два случая: