由于连接超时,无法通过ImageIO.read(url)获取图像

Jak*_*rix 5 java connection url timeout javax.imageio

以下代码似乎总是失败:

    URL url = new URL("http://userserve-ak.last.fm/serve/126/8636005.jpg");
    Image img = ImageIO.read(url);
    System.out.println(img);
Run Code Online (Sandbox Code Playgroud)

我检查了网址,这是一个有效的jpg图片.我得到的错误是:

线程"main"中的异常javax.imageio.IIOException:无法从URL获取输入流!

jesax.imageio.ImageIO.read(ImageIO.java:1385)at maestro.Main2.main(Main2.java:25)

引起:java.net.ConnectException:连接超时 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)的
java.net.PlainSocketImpl.socketConnect(Native Method) java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl. java:176) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) at java.net.Socket.connect(Socket.java:546) at java.net.Socket.connect(Socket.java:495) at 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)








at sun.net.www.http.HttpClient.(HttpClient.java:240)
at sun.net.www.http.HttpClient.New(HttpClient.java:321)
at sun.net.www.http.HttpClient.New( HttpClient.java:338)
在sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:814)
在sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:755)
在阳光下.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:680)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1005)
at java.net.URL.openStream(URL .java:1029)
在javax.imageio.ImageIO.read(ImageIO.java:1383)
... 1更多

Java结果:1

这是什么意思?有趣的是,如果我将我的互联网连接更改为邻居的无线连接,它突然有效.

小智 9

这对我有用.:)

URL url = new URL("http://userserve-ak.last.fm/serve/126/8636005.jpg");
Image image = ImageIO.read(url.openStream());
System.out.println(image);
Run Code Online (Sandbox Code Playgroud)

我知道我迟到了.因为,即使我遇到同样的问题,也要考虑把它放在一边帮助一个人.:)


Cur*_*tis 2

这在家庭网络上可能不太可能,但很多公司都有 HTTP 代理服务器,这可能会让您的错误产生一些误导。通常,该 URL 看起来可以正常手动工作,因为您的浏览器配置为使用代理服务器。您可以在命令行或代码中设置代理设置,请参阅:http ://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html 。