我试图下载以下URL中的图像:
http://upload.tapcrowd.com//cache//_cp_100_100_stand_filière_300x212.jpg
正如您在浏览器中所看到的,这显示了一张图片,但在我的应用程序中,我得到了FileNotFoundException。
然而,如果我将图像的url从“è”更改为“e”,我就可以成功地将其下载到我的应用程序中。然而,这只是一个临时解决方案,因为它需要能够下载带有Unicode符号的图像。
我该如何实现这个目标?
用于下载图像的方法:
Bitmap bitmap = null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);
适用于我的结果代码:
Bitmap bitmap = null;
int slashIndex = url.lastIndexOf('/');
String filename = url.substring(slashIndex + 1);
filename = URLEncoder.encode(filename, "UTF-8");
url = url.subSequence(0, slashIndex + 1) + filename;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);
http://upload.tapcrowd.com//cache//_cp_100_100_stand_fili%C3%A8re_300x212.jpg
的东西。 - njzk2f
相关的代码吗?你是如何创建它的? - ben75