當我嘗試使用Perl提交POST請求時,它通常以301重定向到主頁結束。這裏是代碼:Perl HTTP請求:GET成功時POST失敗
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之後工作了什麼?去網址後你做了什麼? – ysth
腳本應該返回與POST請求結果對應的html。只需啓動腳本就會停止發生錯誤,所以我直接使用Firefox訪問結果頁面。 **然後**啓動腳本顯示正確的html頁面。 –