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.