Actualites��Forum��Archives
�Inscription | Livre d'or | Plan du site | 103� visiteurs actifs �
�
���� A la Une
� Actualit�s
� Dossiers
� Logiciels
� Coin Technique
� Agenda des salons
� Emploi
� Outils Web
� Annuaire Web

���� Archives
� S�lection
� Exp�rience qui parle
� Internet quotidien
� Tous les dossiers

���� Forum
� Forum SAM-MAG

���� Guides
� Check-list de la promotion des sites
� Promouvoir et r�f�rencer les sites web

���� Contact
� Nous contacter
� Abonnement Newsletter D�sabonnement
� La protection des donn�es personnelles

���� Login
���
����
Inscription

Mot de passe oubli�?

�� Sondage
Les points que vous souhaitez voir traiter � l'avenir ?
3%Actualit�
30%Documentation
53%Exemples de sources
3%Liste de liens
12%Revue logiciels

�� Sondage
Vous vous int�ressez plut�t �
77%Programmation
9%Syst�me
10%Logiciel
4%Mat�riel

�� Sondage
votre niveau technique ?
16%Amateur
37%D�butant
38%Professionnel
9%Expert

�� Sondage
Comptez-vous d�poser un .EU ?
15%Oui c'est d�j� fait
15%tres certainement
5%probablement
10%peut �tre
55%non

���� Rechercher
����
���

�� R�f�rencement
�� R�f�rencement sur mesure
�� R�f�rencement international
�� Achat de mots cl�s
�� Devenir revendeur

�� Diagnostic
�� Calcul de popularit�
�� Pr�sence WEB
�� WebPage Alerte
�� Google position

�� Services
�� Mise en conformit� de site
�� H�bergement
�� Sponsoring de la newsletter Sam-Mag
�� Contacter les m�dias
�� Contenu �ditorial
�� Webmastering / D�veloppement

�� Archives
� Merise : 2�me partie�
� Merise: 3�me partie�
� Merise: 4 �me partie�
� Merise: 5�me Partie�
� Merise: 6�me Partie�
� Merise: 7�me Partie�
� Merise: 8�me Partie�
� GOOGLE ouvre son moteur aux d�veloppeurs !�
� Structurer correctement un document XML�
� Il est temps de passer au XHTML 1.0�
� Votre premi�re page XHTML 1.0�
� Les expressions r�guli�res�

Powered by FullXML
�Coin Technique


Code Source C# : WebPage Alerter - HTTP & XML

WebPage Alerter vous informe de la mise à jour de vos sites WEB favoris

Un outil pour être informé de la l'actualisation de pages WEB.

Cet exemple de code illustre les fonctionnalités offertes par Microsoft .Net et la bibliothèque de classe du Framework.
Il met en oeuvre deux techniques simples : l'exécution d'une requête HTTP et l'utilisation de XML pour la sauvegarde des données.

Le but de cet exemple est de pouvoir interroger une liste d'URL afin de connaître la date de dernière modification d'une page WEB,
et d'être ainsi averti de la mise à jour de la page.

La date de modification d'un document WEB est fournie par le protocole HTTP parmi les paramètres d'entête du serveur WEB : LastModified.
On utilise une requête HTTP de type HEAD pour récupérer uniquement les paramètres entête du serveur.

T�l�charger le code source : WebAlerterSource.Zip (30 Ko)
T�l�charger l'ex�cutable : WebAlerter.zip (8 Ko)

Attention, le RunTime Microsoft .Net est indispensable pour ex�cuter le programme. (20,4 Mb)

Les URLs sont sauvegardées dans un fichier XML :

<?xml version="1.0" encoding="utf-8"?>
<URLs>
  <URL>http://www.sam-mag.com</URL>
  <URL>http://www.referenceur.com</URL>
</URLs>

Les attributs de l'élément URL sont utilisés pour sauvegarder les informations de date de dernière modification.
Ce qui va donné ceci :

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="webUrl.xslt"?>
<urls>
  <url modified="oui" lastmodified="09/10/2002 19:50:03">http://www.sam-mag.com</url>
  <url modified="non" lastmodified="28/09/2002 18:42:27">http://www.referenceur.com</url>
</urls>

Le Code Source de l'application

Déclaration des espaces de noms utilisés

Les premières lignes du programmes déclarent les espaces de noms nécessaires, ici System.Net pour l'accès HTTP, et System.XML pour l'utilisation de XML.

using System;
using System.Net;
using System.IO;
using System.Text;
using System.Xml;

Vérification des dates de dernières modification des URLs

L'accès au données XML est réalisé avec l'objet de type XmlDocument.
La méthode Load permet de charger un fichier XML existant.

Ici, on va parcourir la liste des URLs pour effectuer une requête HTTP sur chaque URL.
La liste des éléments à tester est obtenue par SelectNodes("/URLs/*")

Pour chaque URL à tester, on va appeller la méthode GetDateTime()
Les dates sont stockés sous forme d'attribut de l'élément URL.

	// Cr�e un document XML
	XmlDocument doc = new XmlDocument();
	try 
	{
		// Charge le fichier de donn�es
		doc.Load (DATAFILE);
		// S�lectionne la liste des URLs � tester
		XmlNodeList nodeList;
		XmlElement root = doc.DocumentElement;
		nodeList = root.SelectNodes("/URLs/*");
		// Pour chaque URL
		foreach (XmlNode node in nodeList)
		{
			precModified = string.Empty;
			lastModified = string.Empty;
			// r�cup�re l'attribut Last Modified Date
			foreach (XmlNode attr in node.Attributes)				
			{
				if (attr.Name == "LastModified") 					
					precModified = attr.Value;					
			}
			URL = node.InnerText;			
			// R�cup�re la date de derni�re modification
			int res = GetDateTimeURL (URL, ref lastModified);
			if (res == (int) HttpStatusCode.OK)
			{
				// Sauvegarde l'attribut Modifi� Oui/Non
				XmlAttribute AttrModified = doc.CreateAttribute("Modified");
				// Compare date de modification
				if (lastModified == precModified) 
					AttrModified.Value = "non";
				else 
					AttrModified.Value = "oui";
				node.Attributes.Append(AttrModified);
				// Sauvegarde l'attribut nouvelle date de derni�re modification
				XmlAttribute AttrLastModified = doc.CreateAttribute("LastModified");
				AttrLastModified.Value = lastModified;
				node.Attributes.Append(AttrLastModified);
			}
		}
		// sauvegarde des donn�es
		doc.Save(DATAFILE);
	}
	catch (XmlException e)
	{
		Console.WriteLine ("Erreur : " + e.Message);
	}

Exécution de la requête HTTP

L'éxecution d'une requête HTTP avec les librairies du Framework est simple.
On commence par crééer un objet de type HttpWebRequest par la méthode WebRequest.Create(URL)
La réponse à la requête est obtenue par la méthode GetResponse()

	try 
	{
		HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(url);
		httpReq.AllowAutoRedirect = true;
		httpReq.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)";
		httpReq.Method = "HEAD";
		HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
		if (httpRes.StatusCode==HttpStatusCode.OK) 
		{
			lastmodified = httpRes.LastModified.ToString();
		}
		httpRes.Close();
		res = (int) httpRes.StatusCode;
	}
	catch (UriFormatException e)
	{
		Console.WriteLine ("Erreur : " + e.Message);
	}
	catch (WebException e)
	{
		Console.WriteLine ("Erreur : " + e.Message);
	}

Ajout d'URL au fichier XML

Il est possible d'ajouter une URL en spécifiant l'argument -a 'url' au programme.
Dans ce cas la méthode AddURL est appellée :

	// Cr�e un document XML
	XmlDocument doc = new XmlDocument();
	// Charge le fichier de donn�es
	doc.Load (DATAFILE);
	// Cr�� l'�l�ment 
	XmlNode newElem=doc.CreateNode(XmlNodeType.Element, "URL", "");  
	newElem.InnerText = URL;
	// Ajoute l'�l�ment au document
	XmlElement root = doc.DocumentElement;
	root.AppendChild(newElem);
	// sauvegarde des donn�es
	doc.Save(DATAFILE);

Affichage des résultats

L'affichage des résultats s'obtient en ouvrant le fichier XML WebURL.XML (!)
Le fichier XSL WebUrl.XSLT permet de spécifier le format d'affichage des données XML.

Améliorations

Cet exemple peut être améliorer de bien des façons: ajout d'une interrface Windows, envoi d'emails, ....

Crédits

Réalisé par J�r�me Lacaille pour Sam-Mag le 08/10/2002

�Imprimer�Donner votre avis

Actualit�s du Net


�

Ce site respecte la loi Informatique et Libert�s.
Pour en savoir plus sur la protection des donn�es personnelles, cliquez

Sam-Mag - Actualit�s du Web - Webmaster ressources - Mentions l�gales
Un site du r�seau ACORUS 1996-2005 � Copyright ACORUS
All rights reserved.

Webmaster