通过HttpClient下载不完美

时间:2012-12-02 13:12:50

标签: java android download apache-commons-httpclient

我在Android上使用HttpClient下载图片时遇到问题。看起来像是从服务器推送图像,例如"可下载的文件"这是行不通的。另一方面,在浏览器中显示的图像下载没有任何问题。 它看起来像提供的文件的标题和mimetype的问题,或类似的东西..我认为它是在服务器上启用gzip的问题,但经过几次实验它绝对不是这样。 有人知道如何解决这个问题吗?感谢

以下是我的代码的简短摘录

HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
Drawable image = Drawable.createFromStream(is, "src"); //the image is null in certain scenarios

1 个答案:

答案 0 :(得分:1)

Drawable.createFromStream()并不意味着通过远程HTTP连接构建图像。事实上,如果你查看这个方法的来源,它最终会调用BitmapFactory.decodeResourceStream(),用于从应用程序的内部资源创建图像。

我建议您尝试直接使用BitmapFactory上的方法来解码来自网络的图像。一些选项可能是decodeStream(),但有时网络可能会出现问题,使缓冲区足够用于此方法。您还可以自己将流中的字节读取到byte[]并使用decodeByteArray()。你可能会有更好的运气。