Как я могу извлекать данные из URL-адреса HTTPS через прокси?

#java #sockets #ssl #proxy

#java #сокеты #ssl #прокси

Вопрос:

Я получаю Connection timed out: connect .

Мой код:

     System.setProperty("http.proxyHost", "proxy.mycompany.com");
    System.setProperty("http.proxyPort", "8080");

    String url = URL_BASE   "amp;limit=5";
    URL u = new URL(url);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(
            u.openStream()));

    String inputLine;

    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

    in.close();
  

Комментарии:

1. проверьте, требуется ли вашему прокси-серверу аутентификация, затем передайте имя пользователя / пароль.

2. Прокси-серверу не требуется аутентификация.

Ответ №1:

Если вы извлекаете URL-адрес по протоколу HTTPS, то вы должны установить https.proxyHost и https.proxyPort . Смотрите документацию по сетям Java и прокси, раздел 2.2.

 System.setProperty("https.proxyHost", "proxy.mycompany.com");
System.setProperty("https.proxyPort", "8080");
  

предполагая, что proxy.mycompany.com на порту 8080 также есть прокси HTTPS

Ответ №2:

Я предлагаю вам извлекать содержимое с помощью apache http commons httpclient. Там вы можете установить аутентификацию прокси на клиенте без необходимости изменять глобальные свойства jvm.