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)

jeudi 8 mai 2008 à 18:19:43 | recupérer le code source d'une page web avec httpclient

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


vendredi 9 mai 2008 à 14:46:43 | Re : recupérer le code source d'une page web avec httpclient

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

}

}



samedi 10 mai 2008 à 14:17:31 | Re : recupérer le code source d'une page web avec httpclient

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)

samedi 10 mai 2008 à 15:11:49 | Re : recupérer le code source d'une page web avec httpclient

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,

mardi 13 mai 2008 à 22:20:22 | Re : recupérer le code source d'une page web avec httpclient

fraisa1985

merci beaucoup ,elle marche parfaitement mais lorsque je met en paramétre une fichier locale (par exemple [ Lien ]) il m'affiche l'erreur suivante :

Exception in thread "main" java.lang.IllegalStateException: unsupported protocol: 'file'

at org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Protocol.java:149)

at org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:117)

at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)

at org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)

at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)

at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)

at test.TestHtmlClient.main(TestHtmlClient.java:52)

Qu'est ce que je dois faire et merci beaucoup


mercredi 14 mai 2008 à 09:26:52 | Re : recupérer le code source d'une page web avec httpclient

the_wwt

Bonjour,
c'est normal http client gère le protocole http donc avec un client et un serveur web.
Pour lire un fichier local tu n'as pas besoin de http client, utilise l'api de gestions des fichiers de java, et là c'est hors sujet.
A plus,
Pierrick



Cette discussion est classé dans : page, code, source, sb, httpclient


Répondre à ce message

Sujets en rapport avec ce message

code source [ par didoux95 ] Bonjour à tous.Actuellement, je cherche a récupérer le code source d'une page internet (HTML par exemple).J'ai trouvé sur internet plussieurs code jav Récuperer code source d'une page web [ par diablosephiroth ] Bonjours à tous, je dois créer un programme sauf que la j'ai un blocage :pIl faudrait que en Java, je récupère le code source de cette page:<a href="h Code source [ par sofianewn ] bonjour, je suis débutant en java et je cherche un code source pour Indique si les données sont nulles ou pas. On utilisera comme métrique :<font projet imageJ [ par matamin ] salut les mecs je travaille mnt sur le developpement d'un logiciel open source nomme ImageJ le probleme le prbleme reside dans le fait que je voudrai aide s.v.p urgent d'abord [ par saad001 ] salut je veut un programme en c quipermet de tracer la courbe d'une fonction (les plus connus) et calculson intégrale (s.v.p vite un prg dans un seul code source pour la stimulation de la memoire paginée [ par chedjou03 ] bonjour a toutes et a tous vmoi c'est chedjou03 etudiant en informatique .voila dans le cadre de notre cours de technique des  systemes d'exploitation le code source en JAVA pour créer une interface [ par kneniwissem ] bonjour j'ai un projet de din d'étude(PFE) le sujet c'est de créer un éditeur d interface homme machine dans un domaine medical ou gestionnaire,.....e suppression du doctype et du namespace , et perte d'encodage [ par othmaniahlem ] j'ai des fichiers xml, ils présentent des balises que je doit  les supprimer comme <?xml-stylesheet type="text/xsl" href Cours vba/access [ par teckmicro2008 ] bonjour , je suis debutant et j'aimerais comprendre comment utiliser un code dans access !j'aimerais a voir un exemple simple ou complexe mais si poss


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.