Attention, le contenu cet article est peut-être obsolète !
Une classe permettant de lire une page web avec AndroidLa maitrise des tâches asynchrones est nécessaire pour la lecture de cet article.
Voici une classe vous permettant de faire une requête de type GET. Elle doit être gérée par une tâche aynchrone. Pour la lancer, il suffit d'appeler la méthode getRequest() avec en paramètre l'URL complète du site à consulter.
Une fois que c'est terminé, via la méthode onPostExecute(), vous pouvez lire le code HTML affiche par le serveur avec la méthode getResultat() ou encore le code HTTP retourné par le serveur avec getHeader().
Contenu complet de la classe :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.util.Log;
public class readWebPage {
String Url = null;
String Header = "";
String Resultat = "";
public String getResultat() {
return this.Resultat;
}
public String getHeader() {
return this.Header;
}
public void getRequest(String urlPageContact) {
this.Url = urlPageContact;
URL url;
try {
// Création de la demande
url = new URL(Url);
URLConnection conn = url.openConnection();
Header = conn.getHeaderField("Server");
// Ouverture et lecture du flux
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
Resultat = Resultat + inputLine;
}
br.close();
Log.e("Resultat", "Lecture de page terminée");
} catch (MalformedURLException e) {
e.printStackTrace();
Resultat = "Problème : impossible de lire le flux";
} catch (IOException e) {
e.printStackTrace();
Resultat = "Problème : impossible de lire le flux";
}
}
}