Sim, Renato,

usando o  LWP::Simple::get($downloadfile) eu consigo baixar o arquivo inclusive 
através do proxy.
Só o conteúdo do LWP::Simple::head($downloadfile) é que não é o mesmo com ou 
sem proxy.
Não sei se é porque ele usa o head() do LWP::UserAgent, quando acionado o $ua 
para o proxy.

[]'s
Nicole




________________________________
 De: Renato Santos <[email protected]>
Para: Nicole Scherer <[email protected]>; Perl Mongers Rio de Janeiro 
<[email protected]> 
Enviadas: Sexta-feira, 8 de Março de 2013 17:01
Assunto: Re: [Rio-pm] obtendo dados do HTTP header atraves de proxy
 

Existe a possibilidade do seu proxy não estar repassando essas informações ou 
estar negando o acesso.

Você já tentou baixar o arquivo com o proxy ?


2013/3/8 Nicole Scherer <[email protected]>

Oi Mongers,
>
>venho humildemente consultar o vasto conhecimento de vocês em prol da pesquisa 
>científica.
>
>Preciso consultar o tamanho de um arquivo em um servidor ftp, antes de decidir 
>se o arquivo deverá ou não ser baixado.
>Eu estava usando o LWP::Simple::head($url) para isto, e estava funcionando 
>bem, até eu ter que usá-lo através de um proxy.
>O que acontece é o seguinte, usando sem proxy, eu consigo acessar as 
>informações sobre tamanho, formato, codificação, etc,
>
>
>my $downloadfile = 
>"ftp://hgdownload.cse.ucsc.edu/goldenPath/ce4/database/all_est.txt.gz";;
>my ($content_type, $document_length, $modified_time, $expires, $server) = 
>LWP::Simple::head($downloadfile);
>
>--- ou
>
>if (my $res = LWP::Simple::head($downloadfile)) {
>    print "$downloadfile ok\n"; ### debug
>    p($res->{_headers});
>} else {
>    print "$downloadfile not available\n"; ### debug
>}
>
>
>--- e quando uso 
>
>use LWP::Simple qw($ua head);
>$ua->proxy([qw(http ftp wais)], 'http://10.46.10.19:3129');
>
>
>para definir o proxy, ele não retorna estas informações.
>
>
>
>
>Se eu mandar imprimir $res->{_headers}, tenho isso:
>
>
>--- rodando sem proxy
>
>
>HTTP::Headers  {
>    public methods (38) : as_string, authorization, authorization_basic, 
>clear, client_date, content_encoding, content_is_html, content_is_text, 
>content_is_xhtml, content_is_xml, content_language, content_length, 
>content_type, content_type_charset, date, expires, from, header, 
>header_field_names, if_modified_since, if_unmodified_since, init_header, 
>last_modified, new,
 proxy_authenticate, proxy_authorization, proxy_authorization_basic, 
push_header, referer, referrer, remove_content_headers, remove_header, scan, 
server, title, user_agent, warning, www_authenticate
>    private methods (5) : _basic_auth, _date_header, _header, 
>_process_newline, _sorted_field_names
>    internals: {
>        client-date         =>  "Fri, 08 Mar 2013 19:33:58 GMT",
>        client-request-num  =>  1,
>        content-encoding    =>  "gzip",
>        content-length      =>  14169205,
>        content-type        => 
 "text/plain",
>        last-modified       =>  "Mon, 14 Mar 2011 16:52:05 GMT",
>        server              =>  "FTP Server"
>    }
>}
>
>
>
>
>
>--- com proxyHTTP::Headers  {
>    public methods (38) : as_string, authorization, authorization_basic, 
>clear, client_date, content_encoding, content_is_html, content_is_text, 
>content_is_xhtml, content_is_xml, content_language, content_length, 
>content_type,
 content_type_charset, date, expires, from, header, header_field_names, 
if_modified_since, if_unmodified_since, init_header, last_modified, new, 
proxy_authenticate, proxy_authorization, proxy_authorization_basic, 
push_header, referer, referrer, remove_content_headers, remove_header, scan, 
server, title, user_agent, warning, www_authenticate
>    private methods (5) : _basic_auth, _date_header, _header, 
>_process_newline, _sorted_field_names
>    internals: {
>        client-date          =>  "Fri, 08 Mar 2013 19:36:13 GMT",
>        client-peer          =>  "10.46.10.19:3129",
>        client-response-num  =>  1,
>       
 connection           =>  "close",
>        date                 =>  "Fri, 08 Mar 2013 19:35:52 GMT"
>    }
>}
>
>
>
>
>
>Ele simplesmente não cria/recebe content-encoding, content-length, 
>content-type,  last-modified e  server. 
>Só o que eu preciso mesmo é o content-length.
>
>
>By the way, o LWP::UserAgent  head() não me informa o tamanho do arquivo. Pelo 
>menos não nos meus testes.
>
>
>Vocês conhecem alguma outra maneira de obter a informação de tamanho do 
>arquivo sem ter que baixá-lo?
>Acessando o directory listing também não dá, porque através do proxy, o 
>formato que ele retorna varia em cada sistema (pelo menos foi o que eu 
>observei. me corrijam se eu estiver errada).
>
>
>
>
>
>Obrigada!
>
>
>Abraços,
>Nicole
>
>
>
>
>
>
>
>_______________________________________________
>Rio-pm mailing list
>[email protected]
>http://mail.pm.org/mailman/listinfo/rio-pm
>


-- 

Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm

Responder a