begin process at 2008 05 12 11:33:37
1 170 205 membres
108 nouveaux aujourd'hui
13 957 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : recupérer le code source d'une page web avec httpclient [ Divers / Général ] (fraisa1985)

recupérer le code source d'une page web avec httpclient le 08/05/2008 18:19:43

fraisa1985


Salut,Je suis entrain de développer une application qui nécessite la récupération du code source de cette page.
Pour cela je suis entrain d'utiliser la fonction présenté ci-dessous,la probléme que cette fonction marche parfois et dans beaucoup de cas elle ne marche surtout lorsque je vais avois le code source d'une page distante(et encore plus lorsque j'ai un proxy).
Pour rémedier cette probléme j'ai entendu de l'api httpclient ,je l'ai installé en utilisant de faire l'equivalence du fonction ci dessous mais toujours sans aucune resultat.

voila le code que je l'utilise mais pour beaucoup des sites il m'affiche des erreurs donc priére de m'aider à resoudre cette problemeet merci d'avance:

[CODE]
 public StringBuffer getURLContent(String link) {
  StringBuffer sb = new StringBuffer();
  List len = new ArrayList();
  lineCount = 0;
  try {
   URL url = new URL(link);

   
   
   
   
   BufferedReader in = new BufferedReader(new InputStreamReader(url
     .openStream()));
   String line;
   while ((line = in.readLine()) != null) {
    sb.append(line + "\n\n"); //$NON-NLS-1$
    lineCount++;
   }
   in.close();

   return sb;
  } catch (IOException e) {
   e.printStackTrace();//$NON-NLS-1$
  }
  return sb;
 }

[/CODE]
et donc mon probleme est comment recupérer le code source du page (link), avec le code ci dessous
elle marche parfois et parfois non , c pourquois je veux utiliser httpclient en espérant quelle soit plus performants.Toute autre information sera le bien venue


Re : recupérer le code source d'une page web avec httpclient le 09/05/2008 14:46:43

the_wwt
Bonjour,
un petit test de httpclient ci-dessous.
A noter que ton class-path doit contenir les jars suivants:
commons-codec-1.3.jar
commons-logging-1.1.jar
commons-httpclient-3.0.1.jar

PS: "Tue à dé prograit a fer en FRANCAIS"
Pierrick

import

java.io.BufferedInputStream;

import

java.io.IOException;

import

org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;

import

org.apache.commons.httpclient.HttpClient;

import

org.apache.commons.httpclient.HttpException;

import

org.apache.commons.httpclient.HttpStatus;

import

org.apache.commons.httpclient.methods.GetMethod;

import

org.apache.commons.httpclient.params.HttpMethodParams;

/**

* Test de http client

*

@author phymbert

*

*/

public

classTestHtmlClient{

/**

*

@param args N/A

*/

publicstaticvoidmain(String[]args){

// Le client HTTP

HttpClientclient=newHttpClient();

// La méthode GET du protoccol HTTP

GetMethodmethod=newGetMethod("http://www.google.com");

// Provide custom retry handler is necessary

method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,

newDefaultHttpMethodRetryHandler(1,false));

try{

// Execute la méthode HTTP

intstatusCode=client.executeMethod(method);

// Vérifie le code de retour

if(statusCode!=HttpStatus.SC_OK){

return;

}

// Le buffer de lecture des données

BufferedInputStreambr=null;

// 5 MO de buffer

byte[]buffer=newbyte[(int)(5*Math.pow(2,20))];

// La taille total de la page

longsize=0;

// La taille actuellement lue

intread=-1;

try{

//Ouvre le buffer de lecture

br=newBufferedInputStream(method.getResponseBodyAsStream());

// C'est partit on lit la page

while((read=br.read(buffer,0,buffer.length))>0){

// Traite les données

processData(buffer,0,read,size);

size+=read;

}

}catch(Exceptione){

}finally{

if(br!=null)

try{

br.close();

}catch(Exceptione){

}

}

}catch(HttpExceptione){

}catch(IOExceptione){

}finally{

// Release the connection.

method.releaseConnection();

}

}

/**

* Traite les données.

*

@param buffer Le buffer contenant les données

*

@param i L'index de départ des données à traiter

*

@param size La taille des données à traiter

*

@param total Le nombre de données total déjà traités

*/

privatestaticvoidprocessData(byte[]buffer,inti,intsize,longtotal){

// Affiche le résultat dans la console

Stringdata=newString(buffer,i,size);

System.out.println(data);

}

}



Re : recupérer le code source d'une page web avec httpclient le 10/05/2008 14:17:31

fraisa1985


Merci pour votre aide ,
J'ai essayé ce code mais il m'affiche l'erreur suivante:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

at org.apache.commons.httpclient.HttpClient.<clinit>(

HttpClient.java:66)

at test.TestHtmlClient.main(

TestHtmlClient.java:59)

Re : recupérer le code source d'une page web avec httpclient le 10/05/2008 15:11:49

the_wwt
BONJOUR,
j'ai écrit:
"A noter que ton class-path doit contenir les jars suivants:
commons-codec-1.3.jar
commons-logging-1.1.jar
commons-httpclient-3.0.1.jar"

Cordialement,


Classé sous : page, code, source, sb, httpclient

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS