Java - 从URL下载图像

时间:2017-01-26 21:10:02

标签: java image url download

我试图从java中的以下网址下载图片: http://placehold.it/600/24f355

如果您按照上面的网址进行操作,则会看到占位符图片。

官方持有图片的网址为https://placeholdit.imgix.net/~text?txtsize=56&bg=24f355&txt=600%C3%97600&w=600&h=600

注意:请注意,我只能直接访问第一个网址。除了通过浏览器手动跟踪第一个URL之外,我无法知道最后的网址

我尝试过多种方式下载此图片,但没有一种方法是成功的。

目前预计下载图片的代码如下:

(代码下载无法打开的图片..)

     public void saveImage(String imageUrl, String path) {
        // This method only saves the "dummy" image
        try{
            URL url = new URL(imageUrl);
            InputStream is = url.openStream();
            OutputStream os = new FileOutputStream(path);

            byte[] b = new byte[2048];
            int length;

            while ((length = is.read(b)) != -1) {
                os.write(b, 0, length);
            }

            is.close();
            os.close();
        }catch(IOException e){
            e.printStackTrace();
        }

    }   
}

该函数接收图像网址,这是我在顶部提到的图像网址,并指定系统中保存图像的路径。

我做错了什么?

你的帮助太棒了! 提前致谢

1 个答案:

答案 0 :(得分:0)

String finalURL(String url) {
    HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
    con.setInstanceFollowRedirects(false);
    con.connect();
    return con.getHeaderField("Location").toString();
}