Pierre87 Posté(e) 27 avril 2010 Share Posté(e) 27 avril 2010 Salut ! Dans mon application, je veux afficher des images qui viennent d'internet. Tout fonctionne normalement, mon seul soucis, c'est que c'est EXTREMEMENT LENT (je suis en 3G) Ce qui prends énormément de temps, c'est les requêtes que j'effectue lorsque je veux récupérer mes images ... Ca peut me prendre 10 secondes pour une bête image 50x50 en jpg Ok, la 3G c'est lent, mais quand même ! Quand je regarde l'application Twidroid, elle charge des dizaines d'avatars quasi instantanément (en 3G). Je n'arrive pas à voir ce qui cloche dans mon application :( Voilà une partie de mon code : initialisation de mon client http HttpParams params = new BasicHttpParams(); ConnManagerParams.setMaxTotalConnections(params, 10); HttpConnectionParams.setConnectionTimeout(params, 20 * 1000); HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry); this.httpClient = new DefaultHttpClient(cm, params); récupération d'une image HttpGet method = new HttpGet(route); System.out.println("START IMAGE WEB REQUEST"); HttpResponse response = application.getHttpManager().execute(method); // ça prend trop de temps ici !!! System.out.println("STOP IMAGE WEB REQUEST"); Merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 27 avril 2010 Auteur Share Posté(e) 27 avril 2010 Je viens de remarquer un truc aussi : Le temps que je mets à récupérer une image est indépendant de la taille de l'image. Si mon image fait 50x50 ou 640x640, je mets toujours 8 secondes pour la récupérer. Ca doit venir du fait que mon HttpClient recrée une nouvelle connection pour chaque images. Mes images étant toujours sur le même domaine, comment faire pour réutiliser les connexions déjà établies ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 27 avril 2010 Auteur Share Posté(e) 27 avril 2010 Je viens de trouver une piste : ça vient d'un "redirect" En fait, les url des images que j'ai, ne sont pas les url "finales" Avant de pouvoir récupérer mon image, je fais une première requête, qui me redirige sur un autre serveur. Pour le moment, je ne peux pas me passer de ce redirect, car ce n'est pas moi qui contrôle la contenu de mes urls, ni l'adresse finale des images... Vous connaissez un moyen pour que mon HttpClient se souvienne de mes "redirect" ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.