【发布时间】:2023-03-06 02:28:01
【问题描述】:
使用 LWP::UserAgent 时出现代理错误
这是代码:
my $ua = LWP::UserAgent->new();
$ua->proxy( http => $ENV{HTTP_PROXY});
print Dumper($ua);
my $request = new HTTP::Request('GET', $link);
print Dumper( $request );
这是 UserAgent 的转储器
$VAR1 = bless( {
'max_redirect' => 7,
'protocols_forbidden' => undef,
'show_progress' => undef,
'handlers' => {
'response_header' => bless( [
{
'owner' => 'LWP::UserAgent::parse_head',
'callback' => sub { "DUMMY" },
'm_media_type' => 'html',
'line' => 'C:/Perl/lib/LWP/UserAgent.pm:612'
}
], 'HTTP::Config' ),
'request_preprepare' => bless( [
{
'owner' => 'LWP::UserAgent::proxy',
'callback' => sub { "DUMMY" },
'line' => 'C:/Perl/lib/LWP/UserAgent.pm:920'
}
], 'HTTP::Config' )
},
'no_proxy' => [],
'protocols_allowed' => undef,
'local_address' => undef,
'use_eval' => 1,
'requests_redirectable' => [
'GET',
'HEAD'
],
'timeout' => 90,
'def_headers' => bless( {
'user-agent' => 'libwww-perl/5.837'
}, 'HTTP::Headers' ),
'proxy' => {
'http' => 'http://igate:8080'
},
'max_size' => undef
}, 'LWP::UserAgent' );
这是针对请求的:
$VAR1 = bless( {
'_content' => '',
'_uri' => bless( do{\(my $o = 'https://some_link')}, 'URI::https' ),
'_headers' => bless( {}, 'HTTP::Headers' ),
'_method' => 'GET'
}, 'HTTP::Request' );
问题是响应是错误的:
FAIL response, 500 proxy connect failed: PROXY ERROR HEADER, could be non-SSL URL:
HTTP/1.1 503 Service Unavailable
我在 WinXP 机器上使用 ActiveState perl 5.10.1
当从浏览器访问链接时它可以工作
有人可以帮忙吗?
谢谢
【问题讨论】:
-
什么是 $link 价值? “https://some_link”看起来是一个错误的 URL
-
确实 $link 是来自 HTTP::Request 对象的“some_link”,我替换了它,因为我不能给你真正的链接。我保证我不是从网络上抓取信息,只是从网络应用程序内部获取信息
标签: perl