LWP::UserAgentを使った通信の時、Refererを指定してgetしたい。

refererを指定しないとはじかれるページからGETしたい時に。


やりかたは、普通にHTTP::Requestのコンストラクタ呼び出しの時に、ヘッダを指定するだけ。

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Headers;

my $g_ua = LWP::UserAgent->new;
$g_ua->agent('Mozilla/5.0');

print get('ターゲットURL', 'リファラーURL' ) , "\n";
exit(0);

# referer付 get ( URL, refererURL )
sub get{
    my $re = $g_ua->simple_request(HTTP::Request->new( GET => $_[0], new HTTP::Headers(Referer => $_[1]) ));
    return ($re->code() == 200 ? $re->content() : '');
}


LWP::UserAgentをuseすれば、一緒に use HTTP::Request; use HTTP::Headers; されはずなのでわざわざuseしなくてもいい。
しかし、プログラム内で使っているので、一応宣言しておく。