Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1457 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Abandon de requete httpclient

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Abandon de requete httpclient

n°2177680
reywas
J'aime pas les citations
Posté le 27-02-2013 à 01:03:39  profilanswer
 

Bonjour,
 
Pour faire simple, j'ai une longue liste d'url dans une base de données et mon but est de récupérer le code source de ces url. Dans ma base se trouvent parfois des url vers des pdf de 50Mo et quand je fais un GET sur cette page, ben c'est très long à récupérer.
Quand je tombe sur des PDF ou pages de plus de 2Mo, j'aimerai tout simplement passer à l'url suivante.
 
Voici mon code :
 
public String getsource(HttpClient httpclient, String url)
{  
 httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
 httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
 httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, "ignoreCookies" );
   
 HttpGet httpget = new HttpGet(url);  
 StringBuilder source = new StringBuilder();
 String resa = null;
   
 try
 {  
  HttpResponse response = httpclient.execute(httpget);
  BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
   
  long ms = System.currentTimeMillis();
  boolean timeout_over = false;
  String line;
             
             while ((line = reader.readLine()) != null && !timeout_over)  
             {
              source.append(line+"\r\n" );
              if(System.currentTimeMillis()-ms>10000)
              { timeout_over = true; }
             }
 
      if(timeout_over)
      {  
       System.out.println("Page trop lourde" );  
      }
      else
  {
       resa = source.toString().trim();
  }
             
 }  
 catch(IOException ioe)  
 {
  ioe.printStackTrace();
 }
 catch(Exception e)
 {  
  e.printStackTrace();
 }
   
 return resa;
}
 
Actuellement, je lis ligne par ligne et si ça prend plus de 10 secondes j'arrète simplement de lire.
 
Le problème :
- Si je ne lis pas toutes les lignes, alors quand j'utilise ma fonction getsource pour l'url suivante, j'ai cette erreur: Make sure to release the connection before allocating another one.
- Si je réinitialise httpclient alors ça règle le problème mais du coup je perd les éventuels cookies créés (que je souhaite garder) et de toutes façon je souhaite pas forcément recrée le HttpClient à chaque nouvelle url.
 
Quelqu'un aurait une idée ? :)
 
Merci d'avance et bonne soirée.

mood
Publicité
Posté le 27-02-2013 à 01:03:39  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Abandon de requete httpclient

 

Sujets relatifs
requete SQL et variables[VBA] fonction paramétré renvoyant le résultat d'une requête ACCESS
[Access] Problème formulaire requêteRequete SqL
requete sql non envoyé au serveur[SQL] Requete gestion stock ???
Une requête SQL qui finit en OR DIE sans que je comprenne pourquoi...Faire défiler le résultat d'une requête
Requete ACCESS avec Jointure entre 2 TablesResolu :Sql : probleme de requete (Subquery returns more than 1 row)
Plus de sujets relatifs à : Abandon de requete httpclient


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR