|
|
|
Flux web
En C#, il existe une classe qui permet d'interroger une page web afin de
récupérer sa source.
Cette classe est évidemment bien pratique car elle évite un travail
sur les sockets, et d'employer les protocoles HTTP.
Nous allons créer une application qui appelle la page web http://www.yahoo.fr et affiche son code dans une zone de texte.
Commençons par créer un nouveau projet.
Ajoutons à notre application vide une zone de texte et un bouton.
Pour que la zone de texte devienne multiligne il suffit de le préciser dans les propriétés.
Le champ Multiline doit être renseigné en true.
Double cliquons sur le bouton pour entrer dans le code et créer la fonction button1_Click.
On a besoin de trois namespace supplémentaires pour cette application.
using System.Net;
using System.Text;
using System.IO; |
Ces lignes sont à ajouter tout en haut.
On va maintenant dans la méthode button1_Click et on ajoute le code suivant.
private void button1_Click(object sender, System.EventArgs e)
{
WebResponse result=null;
// on interroge la page de yahoo
WebRequest req = WebRequest.Create("http: //www.yahoo.fr");
result = req.GetResponse();
// on crée un flux pour lire la réponse
Stream ReceiveStream =result.GetResponseStream();
// on choisit le type d'encodage
Encoding encode = System.Text.Encoding.GetEncoding(0);
// on crée un flux texte qui lira le flux web
StreamReader sr = new StreamReader(ReceiveStream,encode);
// on lit le flux qu'on place dans le string read
string read = "";
read = sr.ReadToEnd();
// on remplit la zone de texte
textBox1.Text = read;
} |
La lecture de la page se fait en trois temps:
- on crée un flux pour interroger la page voulue.
- on transforme ce flux web en flux texte.
- on lit le flux pour le traiter ensuite.
Une fois compilée, l'application fonctionne assez rapidement. On récupère
alors un code "brut" en HTML de la page de http://www.yahoo.fr.
Il existe bien sûr plein d'applications à ce type de code une fois le principe
compris. A vous de trouver la bonne inspiration en interrogeant par exemple
un dictionnaire en ligne, un moteur de recherche etc... |
|
|