[Rio-pm] obtendo dados do HTTP header atraves de proxy

Nicole Scherer bionica2007-perl em yahoo.com
Segunda Março 11 10:51:48 PDT 2013


Oi Renato e Tiago,

usando as instruções do pacote no cpan, eu obtive isto:


use Net::FTP;
my $host = "ftp://hgdownload.cse.ucsc.edu/goldenPath/ce4/database/"; 
my $ftp = Net::FTP->new($host, Firewall => 'http://10.46.10.19:3129')
    or die "Cannot connect to some.host.name: $@";
$ftp->size("all_est.txt.gz")
    or die "get failed ", $ftp->message;
$ftp->quit;
exit;

-------------------------------


- Primeira tentativa:
$ time perl teste_proxy.pl
Cannot connect to some.host.name: Net::FTP: Bad hostname 'http://10.46.10.19:3129' at teste_proxy.pl line 18.



- Segunda tentativa, tirando o http:// do proxy:

$ perl teste_proxy.pl
Cannot connect to some.host.name:  at teste_proxy.pl line 18.


- em alguma tentativa, também obtive isto:

$ perl teste_proxy.pl
Cannot connect to some.host.name: Net::FTP: Bad hostname 'ftp://hgdownload.cse.ucsc.edu/goldenPath/ce4/database/' at teste_proxy.pl line 18.


-------------------------------


Alguma ideia, sobre o que estou fazendo errado?


[]'s
Nicole



________________________________
 De: Renato Santos <renato.cron em gmail.com>
Para: Nicole Scherer <bionica2007-perl em yahoo.com> 
Cc: Perl Mongers Rio de Janeiro <rio-pm em pm.org> 
Enviadas: Sexta-feira, 8 de Março de 2013 17:13
Assunto: Re: [Rio-pm] obtendo dados do HTTP header atraves de proxy
 

Então você precisa verificar o seu proxy.

Mas como o Tiago disse, 

porque vocẽ não conecta usando Net::FTP ? Ele tem modo anomimo.




2013/3/8 Nicole Scherer <bionica2007-perl em yahoo.com>

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 <renato.cron em gmail.com>
>Para: Nicole Scherer <bionica2007-perl em yahoo.com>; Perl Mongers Rio de Janeiro <rio-pm em pm.org> 
>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 <bionica2007-perl em yahoo.com>
>
>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
>>Rio-pm em pm.org
>>http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
>-- 
>
>Saravá,
>Renato CRON
>http://www.renatocron.com/blog/
>@renato_cron
>
>


-- 

Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20130311/45a576a3/attachment-0001.html>


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