我尝试使用LWP :: UserAgent检索页面,但我一直收到" 500内部服务器错误"作为回应。在Firefox中检索完全相同的页面(使用新的"私有窗口" - 所以没有设置任何cookie)成功没有问题。
我完全按照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,但我不希望我的问题被视为垃圾邮件。
但任何人都知道可能出现什么问题?
答案 0 :(得分:1)
在我们的公司网络上有一个代理(以及过时的perl
版本 - 在新版本中可能有更好的选项)我们倾向于为一次性添加以下内容:
BEGIN {
$ENV{HTTPS_DEBUG} = 1; # optional but can help if you get a response
$ENV{HTTPS_PROXY} = 'https://proxy.server.here.net:8080';
}
如果我们不这样做,脚本就无法连接而没有其他信息。
如果要检查消息,您可能还想添加类似的内容:
$browserObj->add_handler("request_send", sub { shift->dump; return });
$browserObj->add_handler("response_done", sub { shift->dump; return });