Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 17h38   #1
Membre du Club
 
Homme
Développeur informatique
Inscription : mai 2006
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 28
Points : 41
Points : 41
Par défaut Response.LastModified toujours à 0 avec Indy 10

Bonjour,

J'utilise Indy 10 sous Lazarus pour mes composants web et j'en suis plutôt content.

Tout fonctionne bien mais j'ai besoin de récupérer la date de dernière modification d'un fichier et je patauge...

En principe avec Response.LastModified on doit obtenir cette date sauf que quelque soit le fichier de n'importe quel site que je charge via un Get(url) (un Head(url) me fait la même chose) je n'obtiens comme retour qu'un 0 (donc une date 0 ou 30.12.1899).

voici un bout de mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
var HTTP : TIdHTTP;
    Content: string;
    LastDate : TDateTime;
    DateStr  : String ;
begin
  HTTP := TIdHTTP.Create(nil);
 
  try
 
    HTTP.HandleRedirects:=true; 
 
    try
    Content := HTTP.Get(URL); // URL est un string passé en parametre de la procedure
 
    LastDate := HTTP.Response.LastModified; //en brut
    DateStr  := FormatDateTime( 'dd-mm-yyyy' , LastDate);
    showmessage (DateStr); //  renvoi toujours 31.12.1899 !!!
 
...
On m'a dit que cela venait du serveur car certains serveurs mal parametrés ne renvoient pas la dernière date de modification des fichiers... Je veux bien mais là au bout de dizaines de tentatives sur divers sites avec diverses pages je me dis que je dois oublier un truc... Le soucis c'est que je ne trouve rien de plus sur le net.

Hormis ce Response.LastModified tout fonctionne, je peux télécharger ma page sans soucis donc j'y ai bien accès. C'est juste cette partie du header que je trouve toujours à zéro.

Merci d'avance si vous avez un petit truc ou si vous trouvez ou j'ai fauté.

Patrick
lepotager est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 18h37   #2
Membre du Club
 
Homme
Développeur informatique
Inscription : mai 2006
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 28
Points : 41
Points : 41
Il semblerai que pour les pages dynamiques (ASP, PHP etc.) on ne reçoit pas de lastmodified...

Je continue de creuser du côté des if-modified...
lepotager est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 11h31   #3
Membre du Club
 
Homme
Développeur informatique
Inscription : mai 2006
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 28
Points : 41
Points : 41
Je me donne la réponse à moi-même si cela peut servir à d'autres.

HTTP.Response.LastModified ne peut avoir une valeur que si la page est une page statique (une page html brute).

Une page générée (PHP, ASP ou autre) n'en contient pas et la valeur sera donc toujours 0.

Je clos.
lepotager est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h56.


 
 
 
 
Partenaires

Hébergement Web