Имеется метод, который коннектится по заданному 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;
}
}
Тогда из цикла не выйдет, пока не произойдёт подключение, также здесь можно задать количество попыток.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости