Java URLConnection: настройка прокси без изменения URL
Не обращайтесь с прокси как с веб-сервером: передавайте маршрут отдельной опцией подключения Java.
Сохраните настоящий URL ресурса и передайте прокси отдельно в URLConnection:
URI destination = URI.create("https://example.com/report");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080));
URLConnection connection = destination.toURL().openConnection(proxy);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);java.net импорты и замените адрес прокси из документации на свою HTTP-службу или кандидата из списка HTTP-прокси. Соединение по-прежнему запрашивает https://example.com/report; прокси — это его маршрут. Эта настройка не задаёт ни учётные данные, ни каждую HTTP-библиотеку в JVM.
Неверный код, подставляющий прокси в URL ресурса, может быстро получить веб-страницу прокси или ошибку вместо отчёта. Сравните статус, содержимое и фактический пункт назначения, прежде чем считать быстрый ответ признаком лучшей производительности.
openConnection(Proxy) оставляет путь ресурса в URI назначения. Сохраните это имя хоста и для проверки сертификата HTTPS; замена его посредником может добавить несовпадение имени к ошибке маршрутизации.
Если приложение создаёт другой HTTP-клиент, используйте этот клиент или интерфейс его фабрики соединений. Объект прокси URLConnection не может настроить путь, который никогда не вызывает этот API.