У меня здесь интересный сценарий. У меня есть адрес прокси-сервера, который должен предоставлять мне новый IP-адрес при каждом обращении к HTTP-запросу. Я заметил, что IP-адрес выхода изменится только после перезапуска программы, в отличие от каждой итерации цикла. Ниже мой источник.Повторное установление соединения с прокси-сервером
Loop вызывает getHTML каждую итерацию:
String result = getHTML("https://wtfismyip.com/text");
public static String getHTML(String urlToRead) throws Exception {
InetSocketAddress addy = new InetSocketAddress("example.proxy.com", 1234);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addy);
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);
conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
conn.disconnect();
return result.toString();
}
Результат будет оставаться такой же IP каждый раз, пока не перезапустить программу. Я чувствую, что какой-то поток или сокет еще не закрыты, и он поддерживает связь.