6

我正在尝试从 java 中的 URL 从 Internet 上获取图像。我正在使用以下代码。

URL url = new URL(webAddress);
image = ImageIO.read(url);

有时它可以工作,有时它只是无限期地挂起,这取决于 WebAddress 是什么。没有错误消息,它只是继续运行并且什么都不做。

在它永远挂起的地址上肯定有图像,通过将它们复制并粘贴到网络浏览器中来确认。似乎没有哪些模式可以工作,哪些不工作 - 它们都是 jpeg。我已经进行了一些搜索,并找到了一些从 URL 获取图像的其他方法,但是所有这些方法都发生了同样的事情——它们处理一些图像并挂起其他图像。

您是否知道可能导致此问题的原因以及如何解决?

4

1 回答 1

7

嗯,我不确定试试这个,看看是否有任何更改或错误。我还认为也许您将 setRedirects(boolean b) 设置为 false 这也可能会出现问题,但请先尝试以下操作:

    URLConnection con = null;
    InputStream in = null;
    try {
        String webadd="urls go here try the two you have had probelms with and success";
        URL url = new URL(webadd);

        con = url.openConnection();
        con.setConnectTimeout(10000);
        con.setReadTimeout(10000);
        in = con.getInputStream();
        Image img = ImageIO.read(in);
        if (img != null) {
            System.out.println("Loaded");
        } else {
            System.out.println("Could not load");

        }
    } catch (IOException ex) {
        ex.printStackTrace();
    } finally {
        if(is != null) {
            try {
                 is.close();
            } catch(IOException ex) {
                 // handle close failure
            }
        }

        if(con != null) {
            con.disconnect();
        }
    }
}

编辑:或者可能是一个错误?: http://bugs.sun.com/view_bug.do;jsessionid=2bc7386e2f8b4e2550f8b10122f?bug_id= 6309072检查是否仍然出现上述代码尝试:

        Image img=new ImageIcon(url).getImage();
于 2012-06-15T19:18:45.437 回答