Requete http qui prend plusieurs minutes

Requete http qui prend plusieurs minutes - Java - Programmation

Marsh Posté le 01-03-2013 à 12:14:29    

Bonjour,
 
N'ayant eu aucune réponse dans mon autre sujet, j'essaye de reformuler ma demande pour que ce soit plus clair.
 
J'essaye d'obtenir le code source de 3 pages différentes grace au code ci après.
Malheureusement, la seconde url est un PDF de 50Mo et la requète prend donc énormément de temps à s'exécuter.
Le but de ce topic : Essayer d'interrompre la lecture du pdf car c'est trop long et passer à l'url suivante. (donc la 3eme et dernière URL)
 

Code :
  1. public class MonProjet
  2. {
  3. private static HttpClient httpclient = new DefaultHttpClient();
  4. public static void main(String[] args)
  5. {
  6.  // Cette ligne s'execute sans souci.
  7.  String code1 = Http.doget(httpclient, "http://www.siteduzero.com/" );
  8.  // Ici j'essaye d'accéder à un PDF super gros. J'aimerai donc trouver un moyen d'arreter la lecture de delui-ci pour passer au site suivant.
  9.  String code2 = Http.doget(httpclient, "http://booksnow2.scholarsportal.info/ebooks/oca1/29/lapolicedesmurse02fiauuoft/lapolicedesmurse02fiauuoft.pdf" );
  10.  // Je n'arrive jamais à cette ligne car la lecture du PDF est trop longue, j'aimerai la stopper pour pouvoir avoir le code source de ce site.
  11.  String code3 = Http.doget(httpclient, "http://9gag.com/" );
  12. }
  13. }


 
Voici ma fonction doget (qui se trouve dans une classe nommée Http) :
 

Code :
  1. public static String doget(HttpClient httpclient, String url)
  2. {
  3. httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
  4. httpclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
  5. HttpGet httpget = new HttpGet(url);
  6. StringBuilder source = new StringBuilder();
  7. String resa = null;
  8. try
  9. {
  10.  HttpResponse response = httpclient.execute(httpget);
  11.  BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
  12.          String line;
  13.        
  14.  // Cette boucle s'éxecute pendant plusieurs minutes dans le cas où on essaye de lire le pdf
  15.  // C'est trop long, je souhaiterai la stopper si ça prend trop de temps.
  16.          while ((line = reader.readLine()) != null)
  17.  {
  18.   source.append(line+"\r\n" );
  19.  }
  20.  resa = source.toString().trim();
  21.        
  22. }
  23. catch(IOException ioe)
  24. {
  25.  resa = "Erreur";
  26.  System.out.println("IO exception" );
  27.  ioe.printStackTrace();
  28. }
  29. catch(Exception e)
  30. {
  31.  resa = "Erreur";
  32.  System.out.println("Exception" );
  33.  e.printStackTrace();
  34. }
  35. return resa;
  36. }


 
Vous l'avez sûrement compris, mon but est de trouver un moyen de stopper la lecture du PDF sans détruire ni déteriorer mon httpclient. En effet, si on détruit ou déteriore ce httpclient, je ne pourrai pas avoir le code de ma dernière URL...
 
Cela fait 3 jours que je bloque donc je vous en supplie si vous avez une idée, n'hésitez pas ! :)
 
Merci d'avance et bonne soirée ! :)

Reply

Marsh Posté le 01-03-2013 à 12:14:29   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed