Section courante

A propos

Section administrative du site

Est-ce qu'en Java, il est possible d'ouvrir un URL dans un programme, et si oui, est-il possible de lire le contenu ?

Oui, il est possible d'ouvrir un URL en Java ne utilisant les classes URL et URLConnection. Ensuite, il faut utiliser les classes InputStreamReader et BufferedReader pour en extraire le contenu. Toutefois, il y a un piège, lorsqu'il s'agit d'une page d'erreur, comme une 404 par exemple, il retourne le contenu dans la méthode «getErrorStream» plutôt que dans «getInputStream».

L'exemple suivant (du nom de programme «read content from a url»), contient une méthode «getUrlContents» permettant d'effectuer la lecture d'un URL et de retourner son contenu même si une erreur est rencontré. Pour se faire, il parcourra chacune des lignes pour les ajouter dans une variable «data» pour finalement la retourner en chaine de caractères unique :

  1. package read_content_from_a_url;
  2.  
  3. import java.net.*;
  4. import java.io.*;
  5.  
  6. public class Read_content_from_a_url {
  7.  
  8.     public static String getUrlContents(String URLName) {
  9.         try {
  10.             URL url = new URL(URLName);
  11.             HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
  12.             String line, data = "";
  13.             BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getResponseCode() < 400?urlConnection.getInputStream():urlConnection.getErrorStream()));
  14.             while ((line = bufferedReader.readLine()) != null) data += line + "\n";
  15.             bufferedReader.close();
  16.             return data;
  17.         } catch (Exception e) {
  18.             System.out.println(e.getMessage());
  19.             return "";
  20.         }   
  21.     }
  22.  
  23.     public static void main(String[] args) {
  24.         System.out.println(getUrlContents("http://www.gladir.com/index.htm"));
  25.         System.out.println(getUrlContents("http://www.gladir.com/CODER/index.htm"));
  26.     }
  27.     
  28. }


Dernière mise à jour : Mercredi, le 3 juin 2015