【发布时间】:2013-11-25 09:03:19
【问题描述】:
当我尝试使用 Perl 提交 POST 请求时,它通常以 301 重定向到主页结束。这是代码:
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
# This does not work
my $url = 'http://www.opensubtitles.org/en/search2';
my $req = HTTP::Request->new(POST => $url);
$req->content('MovieName=the+terminator+(1996)');
# Pass request to the user agent and get a response back
print $req->as_string."\n";;
my $res = $ua->request($req);
if (!$res->is_success) {
print $res->status_line, "\n";
}
else {
print "Success in posting search\n";
}
为了让它工作,我必须手动使用 Firefox,转到 url (!)。然后脚本工作。但是,使用 GET 请求可以完美地工作:
# This works
my $url = 'http://www.opensubtitles.org/en/search2?MovieName=the+terminator+(1996)';
my $req = HTTP::Request->new(GET => $url);
这是为什么呢?
【问题讨论】:
-
什么 在 Firefox 中访问 url 后起作用了?刚到网址后你做了什么?
-
脚本应该返回与POST请求的结果对应的html。刚启动脚本时出现错误停止,所以我直接使用 Firefox 进入了结果页面。 然后启动脚本显示正确的html页面。