【发布时间】:2016-09-06 10:27:25
【问题描述】:
我希望使用 perl 的 LWP::UserAgent 模块通过 HTTPS 代理请求 URL。有很多关于这个的参考,但没有什么能帮助我让它工作。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use Data::Dumper;
BEGIN {
$ENV{HTTPS_PROXY} = 'https://<IP>:<PORT>';
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
$ENV{HTTPS_PROXY_USERNAME} = '<API_KEY>';
$ENV{HTTPS_PROXY_PASSWORD} = '';
$ENV{HTTPS_DEBUG} = 1; #Add debug output
}
my $ua = LWP::UserAgent->new(ssl_opts => {verify_hostname => 0}, SSL_version => 'SSLv3', allowed_protocols => ['https', 'http']);
$ua->proxy(['https', 'http'], 'https://<IP>:<PORT>');
my $req = HTTP::Request->new('GET','https://<DOMAIN_URL>');
print STDERR Dumper($ua);
my $response = $ua->request($req);
print $response->code ."\n";
print STDERR Dumper($response);
我收到此错误:
SSL 连接尝试失败错误:140770FC:SSL 例程:SSL23_GET_SERVER_HELLO:未知协议在 /home/user/project/local/lib/perl5/LWP/Protocol/http.pm 第 51 行。
尽管我在 LWP 中指定了 allowed_protocols,在代理中指定了 https 方案,并且 url 方案是 https,但它仍然转到上面的 LWP::Protocol::HTTP 而不是 LWP::Protocol::HTTPS。
我还验证了 LWP::Protocol::HTTPS 的版本是 6.06,与 LWP::UserAgent 相同(在某个论坛中提到过)
【问题讨论】:
-
已修复!有什么建议让我试试
-
恐怕不是。如果你能提供一个服务器来测试,我可以玩。但在我的脑海中,我没有任何想法。
-
它是一个带有凭据的私有代理云..
-
你为什么要设置
SSLv3?那是因为你真的需要它,还是因为你在哪里看到它?
标签: perl https proxy lwp lwp-useragent