我試圖檢索使用LWP :: UserAgent的頁面,但我不斷收到一個「500內部服務器錯誤」作爲響應。在Firefox中檢索完全相同的頁面(使用全新的「私人窗口」 - 所以沒有任何Cookie設置)成功沒有問題。獲取「500內部服務器錯誤」與LWP :: UserAgent檢索頁面
我重複了與Firefox發送完全一樣的標題,但這仍然沒有什麼區別。這裏是我的完整代碼:
use strict;
use LWP::UserAgent;
my $browserObj = LWP::UserAgent->new();
$browserObj->cookie_jar({});
$browserObj->timeout(600);
my @header = (
'Host' => 'www.somedomain.com',
'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0',
'Accept-Language' => 'en-US,en;q=0.5',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding' => 'gzip, deflate, br',
'DNT' => '1',
'Connection' => 'keep-alive',
'Upgrade-Insecure-Requests' => '1'
);
my $URL = "https://www.somedomain.com";
my $response = $browserObj->get($URL, @header);
if($response->is_success) {
print "Success!\n";
} else {
print "Error: " . $response->status_line . ".\n");
}
真正的網址是「www.somedomain.com」之外的東西。事實上,這是一個網上賭場的網址,但我不希望我的問題被視爲垃圾郵件。
但任何人的任何想法可能是錯的什麼?
這是不可能沒有真正的URL說。標題看起來很好。無論如何,如果你做錯了什麼,服務器不應該以500響應。 500意味着服務器做錯了什麼。既然你不控制服務器,除非服務器太愚蠢以至於無法正確運行(這可能是故意的),否則我們似乎無能爲力。 – simbabque
嘗試使用'perl -MIO :: Socket :: SSL = debug4 program.pl'運行你的代碼,這樣可以在出現問題時在SSL級別提供信息。由於標題通常包含更詳細的錯誤描述,因此還要添加完整的響應。並請添加您正在使用的LWP版本。如果您使用代理,請確保至少使用LWP 6.06版。除此之外:我很確定LWP不能處理'br'壓縮,但是你在'Accept-Encoding'中宣佈了這個。 –
LWP :: UserAgent還會在連接失敗時返回500錯誤,從而推定服務器出現故障,但這並不是保證。你是否支持代理? –