Следующий код всегда, кажется, перестал работать:
URL url = new URL("http://userserve-ak.last.fm/serve/126/8636005.jpg");
Image img = ImageIO.read(url);
System.out.println(img);
Я проверил URL, и это - действительное изображение jpg. Ошибка, которую я получаю:
Исключение в потоке "основной" javax.imageio. IIOException: не Может получить введенный поток от URL!
в javax.imageio. ImageIO.read(ImageIO.java:1385)
в маэстро. Main2.main(Main2.java:25)Вызванный: java.net. ConnectException: Соединение приведено к таймауту
в java.net. PlainSocketImpl.socketConnect (Собственный метод)
в java.net. AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
в java.net. AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
в java.net. AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
в java.net. Socket.connect (Сокет java:546)
в java.net. Socket.connect (Сокет java:495)
в sun.net. NetworkClient.doConnect(NetworkClient.java:174)
в sun.net.www.http. HttpClient.openServer(HttpClient.java:409)
в sun.net.www.http. HttpClient.openServer(HttpClient.java:530)
в sun.net.www.http. HttpClient. (HttpClient.java:240)
в sun.net.www.http. HttpClient. Новый (HttpClient.java:321)
в sun.net.www.http. HttpClient. Новый (HttpClient.java:338)
в sun.net.www.protocol.http. HttpURLConnection.getNewHttpClient(HttpURLConnection.java:814)
в sun.net.www.protocol.http. HttpURLConnection.plainConnect(HttpURLConnection.java:755)
в sun.net.www.protocol.http. HttpURLConnection.connect(HttpURLConnection.java:680)
в sun.net.www.protocol.http. HttpURLConnection.getInputStream(HttpURLConnection.java:1005)
в java.net. URL.openStream (URL java:1029)
в javax.imageio. ImageIO.read(ImageIO.java:1383)
... Еще 1Результат Java: 1
Что это означает? Забавная вещь, если я изменяю свое интернет-соединение с той из беспроводной связи соседа, это внезапно работает.
Это маловероятно в домашней сети, но многие компании используют Прокси-серверы HTTP, которые могут сделать ваши ошибки немного вводящими в заблуждение. Часто кажется, что URL-адрес работает нормально вручную, потому что ваш браузер настроен на использование вашего прокси-сервера. Вы можете установить параметры прокси в командной строке или в коде, см. http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html .
Этот код мне подходит.
Причина в том, что у вас очень медленное интернет-соединение. Или вы загружаете / выгружаете материалы (http, торренты, ftp, ...)
Я вручную проверил URL-адрес, он действительный и содержит действительное изображение в формате jpg.
Вы тестировали его в браузере? Если так, возможно, время ожидания больше.
Вы тестировали его в своей собственной сети с браузером?
Что это означает?
Исключение тайм-аута означает, что вы не можете создать сокет. Это может быть вызвано несколькими причинами: