【问题标题】:Dowloading image resources from https with LoopJ AndroidAsyncHttp使用 LoopJ Android syncHttp 从 https 下载图片资源
【发布时间】:2013-10-16 15:53:01
【问题描述】:

我正在使用 LoopJ AndroidAsyncHttp 下载图像,但是当我尝试使用 HTTPS URL 时,我没有得到任何响应。 代码:

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);
    }
});

【问题讨论】:

标签: android image https android-async-http


【解决方案1】:

有点晚了,但您可以通过这种方式接受所有证书..

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

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

AsyncHttpClient﹕当心!使用该修复程序是不安全的,因为它不验证 SSL 证书。

【讨论】:

    【解决方案2】:

    希望这段代码能解决你的问题

    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);
    

    【讨论】:

      【解决方案3】:

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

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

      建议你看看picasso或者volley,picasso用起来比较简单,但是volley的功能要多很多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多