Проблемы с прокси-сервером Java — Время ожидания соединения истекло

#java #proxy

#java #прокси

Вопрос:

Я пишу Web scraper на Java, но я нахожусь за прокси-сервером, и это все очень усложняет.

Это код подключения:

 public void scrape(String url, String filename) throws Exception {
    this.url = url;
    this.filename = filename;

    System.out.println("Scraping "   url);
    System.out.println("Saving to ""   this.filename   """);

    try {
        makeConnection();
        createStream();
        writeToFile();
        System.out.println("Scrape was successful");
    } catch (Exception e) {
        System.err.println("Error: "   e.getMessage());
    }
}

private void makeConnection() throws Exception {
    // Set proxy info
    System.setProperty("java.net.useSystemProxies", "true");

    URL address = new URL(url);
    connection  = address.openConnection();
}
  

Это вывод:

 Scraping http://feeds.bbci.co.uk/news/northern_ireland/rss.xml
Saving to "../rss/northern_ireland.xml"
Error: Connection timed out
  

Есть ли лучший способ установить параметры прокси-сервера?

Ответ №1:

Вы можете использовать класс java.net.Proxy, представленный в Java 1.5 … http://download.oracle.com/javase/1.5.0/docs/api/java/net/Proxy.html

Краткое описание того, как он используется, можно найти здесь: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

Ответ №2:

Возможно, системные настройки прокси настроены не так, как вы ожидали. Попробуйте явно задать системные свойства JVM http.proxyPort , http.proxyHost и http.nonProxyHosts .