2010年に上記※1を記載しましたが、※2によれば、 LWP::UserAgent->new(%option) の %option には次があるらしい。
KEY | default | note |
---|---|---|
agent | "libwww-perl/#.###" | USER_AGENT |
cookie_jar | undef | 使ったことはあります |
timeout | 180 | |
max_size | undef | max contents size |
requests_redirectable ['GET', 'HEAD'] | redirectする対象method | |
max_redirect | 7 | max redirect count |
protocols_allowed | undef | 許可protocolらしいが... |
protocols_forbidden | undef | 禁止protocolらしいが... |
from | undef | mail address? |
default_headers | HTTP::Headers->new | HTTP::Headers object? |
conn_cache | undef | 何だろう? |
parse_head | 1 | 何だろう? |
特に、redirect に関しては、requests_redirectable や max_redirect が ありますので、上記※1は、以下のようになると思います。
#!/usr/local/bin/perl use strict; use warnings; use HTTP::Request::Common; use LWP::UserAgent; use Encode; use CGI; # redirectを発生させる仮?のcgiを指定 my $TARGET_CGI = "http://cent80.a5.jp:8080/Test/searchto.pl"; main(); sub main { my $ua = LWP::UserAgent->new; # 301や302検知後、redirectする場合の対象method # refer to https://soft.bko.to/perl/K-M/LWP-UserAgent.html $ua->requests_redirectable(["POST","GET"]); my $req_data =[limit =>20, offset =>20, blog_id =>2, search =>'("plantype|P1" OR "plantype|P2")', SearchSortBy =>"text", SearchResultDisplay=>"descend", searchFields =>"title,more"]; my $req = HTTP::Request::Common::POST($TARGET_CGI, $req_data); $req->header("X-Requested-With" =>'XMLHttpRequest', "X-MT-Authorization"=>'MTAuth accessToken=HOGEHOGE'); my $res = $ua->request($req); # requests_redirectable([]) の様に空にした場合、以下のifがtrue if ( $res->is_redirect ) { # redirectの場合 print "REDIRECT DETECTED\n"; print $res->as_string, "\n"; return; } if ( $res->is_success ) { print $res->content, "\n"; return; } }