В настоящее время у меня есть метод, который создает InputStream из String (url).
Проблема в том, что мне нужно открывать новое соединение каждый раз, когда я хочу прочитать новый URL. У меня такое ощущение, что это слегка неэффективно, так как мой сетевой коммутатор решил отказаться от меня несколько раз.
Я хочу создать коллекцию соединений и просто «перенаправить» их, если я хочу прочитать новое изображение.
Было бы неплохо, если бы хост веб-сайтов воспринимал это соединение как одного пользователя, который просматривает веб-сайт, вместо нескольких тысяч случайных соединений, приходящих с одного IP. Это может помешать получению случайных 403-х.
У меня есть около 2-3 миллионов URL, к которым я хочу подключиться.
Поскольку это довольно новое поле для меня, я попытался сначала поиграть с несколькими методами из URL.class и URLConnection.class. Пока безуспешно.
private Optional<InputStream> readImage(String urlString, int fromIndex, int trys) {
InputStream inStream = null;
try {
inStream = new URL(urlString).openConnection().getInputStream();
} catch (IOException e) {
if(trys <= 3) {
return readImage(urlString, fromIndex, ++trys);
}
}
return Optional.ofNullable(inStream);
}
Может быть, помогает