请帮助编写以下代码,这在我们的环境中不起作用。
use LWP;
use strict;
my $url = 'http://google.com';
my $username = 'user';
my $password = 'mypassword';
my $browser = LWP::UserAgent->new('Mozilla');
$browser->credentials("172.18.124.11:80","something.co.in",$username=>$password);
$browser->timeout(10);
my $response=$browser->get($url);
print $response->content;
输出:
无法连接到google.com:80(超时(
LWP::Protocol::http::Socket:connect:在C/Perl/lib/LWP/Protocol/http.pm第51行超时。
操作系统:windows XP
此致,Gaurav
172.18.124.11是否有HTTP代理?我认为LWP没有使用代理。您可能希望将env_proxy => 1
与new()
调用一起使用。
这个问题中还有一个mod-perl2标签。如果此代码在mod-perl2中运行,则http_proxy
env变量可能对代码不可见。你可以通过打印$browser->proxy('http')
来检查这个。
或者只是用$browser->proxy('http', '172.18.124.11')
设置代理;
另外,我假设您没有打开use warnings
,因为new()
需要一个散列,而不仅仅是一个字符串。始终启用警告是个好主意。那会为你省去很多麻烦。