我试图从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();
}
}
}
该函数接收图像网址,这是我在顶部提到的图像网址,并指定系统中保存图像的路径。
我做错了什么?
你的帮助太棒了! 提前致谢
答案 0 :(得分:0)
String finalURL(String url) {
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setInstanceFollowRedirects(false);
con.connect();
return con.getHeaderField("Location").toString();
}