2012-03-15 90 views
3

我在查詢文檔的Web服務器,我想捕獲文檔和相關的服務器響應標頭(特別是Content-Type:...)。我無法找到如何閱讀標題。下面是我的Perl腳本一些sniplets,我離開錯誤檢查出來的清晰度:Perl LWP :: useragent捕獲服務器響應標頭

use LWP::UserAgent; 
my $ua = LWP::UserAgent->new; 
$ua->agent('requiredCustomUserAgent'); # I'm required to set a custom user agent 
$imageData = $response->content;   # This is the received document 

所以在這一點上,我可以檢索網絡文檔,但我想知道是什麼內容類型與它發送的服務器。不幸的是,這並不總是與bash'file'命令找到的mime類型相同。這個文件方法在.js或.css文件的情況下失敗。

+1

我想答案一定是在http://search.cpan.org/~gaas/HTTP-Message-6.03/lib/HTTP/Response.pm和http://搜索.cpan.org /〜gaas/HTTP-Message-6.03/lib/HTTP/Headers.pm但是我似乎不知道如何閱讀$ r-> header($ field => $ value)的信息和$ h-> content_type – jippie 2012-03-15 17:48:53

回答

12

http://search.cpan.org/perldoc?HTTP::Response

use LWP::UserAgent; 
my $ua = new LWP::UserAgent; 
my $response = $ua->get("http://google.co.uk"); 

print $response->headers()->as_string; 
print $response->header('content-type'); 
+0

只是一句謹慎。實際上,$ response-> headers-> as_string應該會產生原始響應頭文件,但它根本不會。所以人們應該小心這個輸出。當查看Set-Cookie值時,這一點特別明顯。 – Jacques 2017-04-30 23:59:38