Java从URL挂起读取图像

Ber*_*gil 6 java url javax.imageio

我正试图通过java中的URL从互联网上获取图像.我正在使用以下代码.

URL url = new URL(webAddress);
image = ImageIO.read(url);
Run Code Online (Sandbox Code Playgroud)

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

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

你知道是什么原因造成这种情况,以及如何解决这个问题?

Dav*_*amp 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

        Image img=new ImageIcon(url).getImage();
Run Code Online (Sandbox Code Playgroud)