首页 文章

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

提问于
浏览
5

以下代码似乎总是失败:

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

我检查了网址,这是一个有效的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.PlainSocketImpl.socketConnect(Native方法)在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)的java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)java.net的java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) . 在sun.net.www.http的sun.net.NetworkClient.doConnect(NetworkClient.java:174)的java.net.Socket.connect(Socket.java:495)上的net.Socket.connect(Socket.java:546) .httpClient.openServer(HttpClient.java:409)at 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)at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient (HttpURLConnection.java:814)在sun.net.www.protocol .http.HttpURLConnection.plainConnect(HttpURLConnection.java:755)at sun.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)at javax.imageio.ImageIO.read(ImageIO.java:1383)... 1更多Java结果:1

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

3 回答

  • 8

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

  • 0

    这对我有用 . :)

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

    我知道我迟到了 . 因为,即使我遇到同样的问题,也考虑过把它当作有用的东西 . :)

  • 2

    这段代码非常适合我 .

    如果您的互联网连接速度很慢,那就是原因 . 或者您正在下载/上传内容(http,torrent,ftp,...)

    我手动检查了网址,它是有效的,并包含一个有效的jpg图像 .

    编辑:

    你在浏览器中测试过了吗?如果是这样,也许它的超时时间更长 .
    您是否使用浏览器在 own 网络上进行了测试?

    这是什么意思?

    超时异常意味着您无法创建套接字 . 这可能有以下几个原因:

    • 服务器没有响应 .

    • 服务器很忙 .

    • 包丢失了 . 这可能还有以下几个原因:

    • 您正在下载并且您的宽带已满 .

    • 您远离互联网提供商的"central" . (你住在这个国家)

相关问题