Publié le 12/05/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
4 commentaires

Ouvrir une URL et charger son contenu au format texte

Pour charger le code source d'une page HTML, le langage JAVA propose plusieurs packages autour de la communication réseau. Dans cet article, nous utilisons l'objet URLConnection permettant d'ouvrir une URL et charger son contenu.

Charger une page HTML avec JAVA

Voici un exemple d'utilisation, les redirections y compris les pages 301 sont traitées automatiquement par la class URLConnection. Le contenu de la page HTML est récupéré dans une variable String au moyen d'un StringBuilder.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * Charger une page HTML
 * http://www.fobec.com/java/908/ouvrir-une-url-charger-son-contenu-format-texte.html
 */
 
public class HTTPLoader {
/**
 * Open a url and read text data, for example html file
 * @param _url url
 * @return String file content
 */
    public static String getTextFile(String _url) {
        BufferedReader reader = null;
        try {
            URL url = new URL(_url);
            URLConnection urlConnection = url.openConnection();
            reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\n");
            }
            return sb.toString();
        } catch (IOException ex) {
            Logger.getLogger(HTTPLoader.class.getName()).log(Level.SEVERE, null, ex);
            return "";
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException ex) {
                Logger.getLogger(HTTPLoader.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
} 

Charger l'URL de la page index

Pour illustrer le chargement du code source, voyons comment obtenir le code source la page index du site Fobec.com.

System.out.print(HTTPLoader.getTextFile("http://fobec.com/"))

Pour charger une URL, une autre méthode consiste à utiliser directement les sockets en JAVA. Dans ce cas, il faudrait gérer soi-même les codes HTTP par exemple les redirections et les erreurs de communication réseau.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar Tom

Publié par Tom

le 04/05/2011 à 17:28:13

Hello!
Cependant, mon Eclipse ne reconnait pas HttpLoader comme type valide...
Comment faire pour que ca marche?
Merci d'avance pour ton aide!
@+

avatar Fobec

Publié par Fobec

le 04/05/2011 à 18:01:53

oups quelques lignes manquent sur ce code ! ... l'exemple est corrige et complet
Merci Tom

avatar Verkork

Publié par Verkork

le 01/06/2011 à 00:03:14

Le probleme c'est que ce code ne convient pas quand une partie de la page est dynamique, ie qu'elle est rafraichit toutes les minutes par exemple. Par exemple pour une telle page, c'est plus compliquee: [modere]

avatar skud

Publié par skud

le 04/11/2011 à 17:16:14

La methode getTextFile() etant statique, il faut donc l'appeler de maniere statique. Modifier l'exemple de la maniere suivante

System.out.print(HTTPLoader.getTextFile('http://fobec.com/CMS/index.php'));

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
12/05/2010
Visualisation
vu 6844 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 264 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Yannick dans tuto

Sur un de mes sites j'ai vraiment du mal a gerer le gzip sur 1and1, Je vais tout de suite tester tout ca et je vous tiens informe :)

Publié par jmc dans CMS

Autre lien de chargement : http://www.fobec.com/protec/logiciels2/encadre.php3?id_log=217&cat=VBureautique

Publié par hilflo dans tuto

Pour Romaingineer, essaye d'aller voir dans le fichier functions.php dans ton theme, tu dois avoir des functions wp_enqueue_style ou wp_enqueue_script, c'est la que tu pourras faire des modifs

Publié par bakouz dans java

Bonjour Axel,
je suis tombe sur ton site un peu par hasard.
Hasard car je ne le connaissais pas jusqu'a maintenant, et non du hasard car c'est exactement ce genre de class que je recherchais. !...

Publié par IB dans tuto

On ne voit pas le gros bouton rouge 'Download' pour charger les 3 scripts, dont vous parlez sur le site