Bonjour à tous.
Il me semble avoir déjà lu qu'il était passible de vérifier la date de modification d'une page web avant de la charger est-ce possible ?
Bonjour à tous.
Il me semble avoir déjà lu qu'il était passible de vérifier la date de modification d'une page web avant de la charger est-ce possible ?
C'est possible en effet, c'est indiqué dans l'en-tête HTTP Last-Modified de la réponse. Mais la plupart des serveurs ne renvoient pas cette information... D'ailleurs ça n'a généralement pas vraiment de sens, vu qu'aujourd'hui la plupart des pages web sont dynamiques, et le contenu renvoyé au client peut donc changer sans que le code source de la page ait changé.
Pour les cas où le serveur fournit la réponse, tu peux faire une requête HTTP avec la méthode HEAD (à la place de GET ou POST), ça renvoie uniquement les en-têtes et non le contenu.
Voilà un exemple de comment faire :
La méthode renvoie un Nullable(Of DateTime) plutôt qu'un DateTime, pour le cas où l'en-tête est absent (la plupart des cas en réalité...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Imports System.Net Imports System.Globalization ... Public Shared Function GetLastModifDate(ByVal url As String) As Nullable(Of DateTime) Dim request As HttpWebRequest = TryCast(WebRequest.Create(url), HttpWebRequest) request.Method = WebRequestMethods.Http.Head Using response As HttpWebResponse = request.GetResponse() Dim s As String = response.Headers("Last-Modified") If String.IsNullOrEmpty(s) Then Return Nothing End If Return DateTime.ParseExact(s, "R", DateTimeFormatInfo.InvariantInfo) End Using End Function
Le spécificateur de format "R" indique le format de date RFC1123, format utilisé dans le protocole HTTP (de la forme "Sat, 10 Apr 2004 08:43:49 GMT")
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
ouais merci beaucoup
La réponse est null alors...passont
Par contre, il arrive que j'obtienne une page redirigée quand la page n'existe pas. Puis-je tester son existance avant de la charger ?
merci
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Partager