Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    URLConnection e getLastModified

    Ciao a tutti... sto cercando di scrivere un semplice programma che permetta di sapere qual'è la data dell'ultimo aggironamento di una pagina;
    non avendo mai lavorato con java e il protocollo http ho cercato alcuni esempi online;
    provandoli mi capita spesso (non sempre) che mi mostrino 0;

    non riesco a capire da cosa possa dipende;

    vi allego un esempio che sto utilizzando

    codice:
    import java.net.URL; 
    import java.io.IOException;
    import java.net.URLConnection; 
    import java.net.MalformedURLException; 
    
    public class HeaderFiaields{
    	public static void main(String[] args){
    		URL url = null;
    		URLConnection urlc = null; 
    		try{
    			url = new URL("http://www.google.it");
    		}catch(MalformedURLException mue){
    			System.err.println(mue); 
    		}
    		try{
    			urlc = url.openConnection(); 
    		}catch(IOException ioe){
    			System.err.println(ioe); 
    		}
    
    		System.out.println(urlc.getLastModified());
    
    	}
    }
    vi ringrazio davvero per l'aiuto


    ciao!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: URLConnection e getLastModified

    Originariamente inviato da equiweb.it
    mi capita spesso (non sempre) che mi mostrino 0
    Nella response l'header "Last-Modified" non è obbligatorio. Se non è presente, non si può determinare la data di modifica, pertanto ottieni 0.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    capito...

    è possibile sapere in altro modo la data dell'ultima modifica di un file?

    grazie davvero per l'aiuto!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da equiweb.it
    è possibile sapere in altro modo la data dell'ultima modifica di un file?
    La questione è la seguente.

    Se la risorsa che richiedi è "statica", cioè un file che viene "servito" direttamente dal server HTTP, allora quasi sicuramente c'è l'header "Last-Modified" che fornisce una data che rispecchia veramente la data di ultima modifica del file. Dico "quasi" perché ovviamente potrebbe dipendere dal server e dalla sua configurazione.

    Se la risorsa che richiedi è "dinamica" (pagina PHP/JSP/Servlet/ASP ecc....) allora ..... dipende! Nel senso che è a discrezione dello script inviare questo header oppure no. Potrebbe:
    1) Fregarsene e non inviarlo.
    2) Inviarlo con una data fissa predeterminata.
    3) Inviarlo con la data "del momento".
    4) Inviarlo con una data calcolata o presa da altre fonti (immagina una pagina generata da dati presi da un db ... la pagina è creata "al volo" ma magari sul db c'è una data di ultima modifica del record e allora invia questa).

    Esiste un altro header "Date" (e c'è un getDate() in URLConnection!) che rappresenta la data di invio del messaggio (la response in pratica). Anche questo non è obbligatorio.

    Potresti quindi usare getLastModified() e se ritorna 0 mal che vada puoi provare getDate(). Se pure questo è 0 .... ciccia.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ti ringrazio davvero per l'aiuto! Il mio scopo creare un piccolo programma che una volta avviato controlli regolarmente alcuni links e informi l'utente se è stata effettuata qualche aggiornamento nella pagina. Seguendo quello che mi hai detto pensavo allora di scaricarmi il contenuto della pagina e verificare se è uguale a quello scaricato precedentemente... Secondo te protrebbe andare? Per salvare il campo data e non l'header c'è un metodo apposta o devo salvare tutto quello che ricevo dal get e separarlo "manualmente"? Grazie davvero dell'aiuto

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da equiweb.it
    Per salvare il campo data e non l'header c'è un metodo apposta o devo salvare tutto quello che ricevo dal get e separarlo "manualmente"? Grazie davvero dell'aiuto
    Una cosa sono gli header ... un'altra il "body" della response (cioè la pagina/file che si visualizza/scarica). Per i primi, ci sono getHeaderField() e altri (e per header specifici e particolari i più comodi getDate() ecc...). Per il body, lo leggi con un InputStream fornito da getInputStream().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    sei stato gentilissimo

    grazie davvero per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.