[Cascavel-pm] LWP e método "last_modified"

Marco A P D´Andrade mda em embratel.net.br
Segunda Abril 5 09:27:27 CDT 2004


Alceu,

Na prática vc já requisitou uma ação GET, que fará a transferencia.

Verificando rapidamente a questão, em primeira hipotese eu pensaria no 
metodo head, porém ele não é suficiente, mas verificando HTTP::Headers 
percebi a existencia do metodo:

       $h->if_modified_since

Outro metodo mais objetivo é o "mirror", que já fará a alimentação deste 
parametro
Porém para isto vc deverá ser mais "detalhista" na inicialização do 
objeto browser...

... Não adianta... a curiosidade pegou!


#--
use warnings;
use strict;
use LWP::UserAgent;

 my $url = shift || 'http://cascavel.pm.org';

 my $ua = LWP::UserAgent->new;
  $ua->agent("mda's Mirror");

 my $request = HTTP::Request->new( GET => $url );
  $request->header('If-Modified-Since' => HTTP::Date::time2str( 
time()-86400*365 ));

 my $response = $ua->request($request);

  if ( $response->is_success ) {
        print "lm: ", scalar(localtime($response->last_modified)), "\n";

   } else {
        if ( $response->code == 304 ) {
                print "nao modificado...\n";
                print "lm: ", 
scalar(localtime($response->last_modified)), "\n";
         } else {
                print "Falhou? Code: ", $response->code, "\n\n";
        }
  }

1;

#---

De qualquer maneira, recomendo verificar o método mirror...

Sds,
Marco Antonio






Alceu R. de Freitas Jr. wrote:

>Bom dia monges,
>
>Estou querendo fazer algo simples com LWP, mas não
>está funcionando muito bem do jeito que eu quero.
>
>Eu quero copiar um documento de um webserver, mas
>apenas se ele for mais velho do que uma data
>configurável. Se eu tentar fazer algo assim:
>
>my $url = shift;
>my $browser = LWP::UserAgent->new;
>my $request = $browser->get($url);
>print $request->last_modified;
>
>Até que funciona (imprime a data de última modificação
>do documento), o problema é que o LWP já leu todo o
>conteúdo do arquivo, algo que eu gostaria muito de
>evitar.
>
>Deixe eu ver se expliquei direito, eu quero apenas o
>valor enviado pelo servidor no header do documento.
>Não quero o documento inteiro (não até definir se a
>data de modificação é aceitável).
>
>Alguém sabe fazer isso? Eu deveria abandonar o LWP e
>usar sockets? (eca).
>
>[]´s
>
>
>=====
>Alceu Rodrigues de Freitas Junior
>--------------------------------------
>glasswalk3r em yahoo.com.br
>http://www.imortais.cjb.net
>-----------------------------------------------------------------------
>"Todo mundo precisa crer em algo. Creio que vou tomar outra cerveja."
>Grouxo Marx
>
>______________________________________________________________________
>
>Yahoo! Mail - O melhor e-mail do Brasil! Abra sua conta agora:
>http://br.yahoo.com/info/mail.html
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em mail.pm.org
>http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
>
>




Mais detalhes sobre a lista de discussão Cascavel-pm