2013-10-09 5 views
7

Sto utilizzando LoopJ AndroidAsyncHttp per scaricare le immagini ma quando provo per gli URL HTTPS non ottengo risposta. Codice:Scarico risorse immagine da https con LoopJ AndroidAsyncHttp

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

Sarebbe bello se potessi dirci cosa hai provato. Hai provato a ignorare il problema o qualcos'altro? – OrhanC1

+1

Controlla l'esempio su come accettare tutti i certificati: https://github.com/loopj/android-async-http/issues/288 –

+1

Non è il modo migliore per accettare tutti i certificati, non ha senso avere HTTPS se lo fai. Dovresti dare un'occhiata a: http://stackoverflow.com/questions/12018681/android-tls-connection-and-self-signed-certificate –

risposta

4

Ci sono alcune librerie open source che fanno asincrono caricamento delle immagini. Non si occupano solo del download, ma anche del caching e del multithreading.

Tutto sommato, è molto più comodo usare queste librerie piuttosto che provare a scrivere tutto quel codice da solo. In questo momento è solo il download di un'immagine, ma in futuro si consiglia la cache, ecc

vi consiglio di dare un'occhiata a picasso o volley, Picasso è più semplice da usare, ma volley ha molto più funzionalità.

0

Spero che questo codice può risolvere il tuo problema

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

un po 'in ritardo, ma si può accettare tutti cerificates questo modo ..

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

nei log si vedrà questo ..

AsyncHttpClient: Attenzione! L'uso della correzione non è sicuro, in quanto non verifica i certificati SSL.