2013-05-28 4 views
2

Я пытаюсь загрузить и загрузить файл в формате html. Ниже приведен блок кода:java net URL connection timeout

import java.net.*; 
import java.io.*; 

public class URLReader { 

    public static void main(String[] args) throws Exception { 

    System.setProperty("http.proxyHost", "webcache.mydomain.com"); 
    System.setProperty("http.proxyPort", "8080"); 

    URL url = new URL("http://www.java2s.com/"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 

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

Вот, когда я пытаюсь запустить этот файл Java он показал мне следующую ошибку:

D:\Build>javac URLReader.java 

D:\Build>java URLReader 

Exception in thread "main" java.net.ConnectException: Connection timed out: connect 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
    at java.net.Socket.connect(Socket.java:529) 
    at java.net.Socket.connect(Socket.java:478) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:388) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:523) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:227) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:300) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:977) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:925) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172) 
    at java.net.URL.openStream(URL.java:1010) 
    at URLReader.main(URLReader.java:12) 

Я не думаю, что есть какие-либо проблемы с кодом, потому что, когда я попытался запустить этот код дома, это сработало для меня. Но когда я попробовал это в своем офисе, он показал мне ошибку! Так что, наверное, в моем офисе должна быть какая-то блокировка.

Могу ли я установить любой прокси здесь в коде, чтобы он мог работать?

+0

Off тему: Почему использовать полностью квалифицированные имена классов, когда у вас есть пакеты, импортированные? –

+0

Я новичок в Java! Я не понимаю, что вы говорите. Можете ли вы прокомментировать –

+0

См. Ответ от @Cratytus ниже. Но помните, что даже после того, как вы проверили наличие прокси-сервера, у вас есть две логические ошибки в коде, которые предотвратят его успешное выполнение. – Perception

ответ

3

Если вы находитесь за прокси-сервером, вам нужно настроить Java, чтобы использовать его. Читайте here о том, как настроить прокси-сервер для сетевой программы

+0

Hum ........... ok –

1

Попробуйте это, как указано в ссылке http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

//Set the http proxy to webcache.mydomain.com:8080 

System.setProperty("http.proxyHost", "webcache.mydomain.com"); 
System.setPropery("http.proxyPort", "8080"); 

// Next connection will be through proxy. 
URL url = new URL("http://java.sun.com/"); 
InputStream in = url.openStream(); 

// Now, let's 'unset' the proxy. 
System.setProperty("http.proxyHost", null); 

// From now on http connections will be done directly. 
Смежные вопросы