使用LoopJ Android Async Http从https下载图像资源

时间:2013-10-09 10:27:58

标签: android image https android-async-http

我正在使用LoopJ AndroidAsyncHttp下载图片,但当我尝试使用HTTPS网址时,我没有得到任何回复。 代码:

AsyncHttpClient client = new AsyncHttpClient();
client.get(httpsUrlString, new BinaryHttpResponseHandler(allowedContentTypes) {
    @Override
    public void onSuccess(byte[] fileData) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(fileData, 0, fileData.length);
        image.setImageBitmap(bitmap);
    }
});

3 个答案:

答案 0 :(得分:4)

有一些开源库可以进行异步图像加载。他们不仅负责下载,还负责缓存和多线程。

总而言之,使用这些库比尝试自己编写所有代码要方便得多。现在它只下载图像,但将来你可能需要缓存等。

我建议你看一下picassovolley,毕加索更容易使用,但是凌空有更多的功能。

答案 1 :(得分:0)

我希望这段代码可以解决您的问题

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);

MySSLSocketFactory socketFactory = new MySSLSocketFactory(trustStore);
socketFactory.setHostnameVerifier(MySSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

httpClient.setTimeout(30 * 1000);
httpClient.setSSLSocketFactory(socketFactory);

答案 2 :(得分:0)

有点晚了,但你可以这样接受所有的证书..

AsyncHttpClient client = new AsyncHttpClient(true, 80, 443);

在你的日志中你会看到这个..

AsyncHttpClient:小心!使用此修复程序是不安全的,因为它不验证SSL证书。