首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用LWP::UserAgent在代理上使用Perl HTTPS

使用LWP::UserAgent在代理上使用Perl HTTPS
EN

Stack Overflow用户
提问于 2016-09-06 10:27:25
回答 2查看 3K关注 0票数 3

我希望使用perl的LWP::UserAgent模块通过HTTPS代理请求一个URL。有相当多的参考围绕这一点,但没有什么可以帮助我使它的工作。

代码语言:javascript
运行
复制
#!/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);

我知道这个错误:

/home/user/project/local/lib/perl5/LWP/Protocol/http.pm第51行的SSL尝试失败错误:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown协议。

尽管我在LWP中指定了allowed_protocols,代理中的https方案和url方案是https,但它仍然转到LWP::Protocol::HTTP上面,而不是LWP::Protocol::HTTPS。

我还验证了LWP::Protocol::HTTPS的版本是6.06,与LWP::UserAgent (其中一个论坛中提到的)相同。

EN

回答 2

Stack Overflow用户

发布于 2016-09-06 10:52:14

这对我起了作用:

代码语言:javascript
运行
复制
use LWP::UserAgent;

$ua = LWP::UserAgent->new(); 
$ua->proxy('https', 'connect://<USER>:<PSWD>@<IP>:<PORT>/');

$ua->get('https://www.somesslsite.com');

HTTPS Proxy and LWP::UserAgent

注意:环境证书(HTTPS_PROXY_USERNAME)不适合我。我不得不像上面那样在URL中输入它。

票数 3
EN

Stack Overflow用户

发布于 2016-09-06 13:05:02

使用最新版本的LWP (从您拥有的版本6.06开始)的正确设置是使用与其他应用程序以及proxy函数相同的语法:

代码语言:javascript
运行
复制
 my $ua = LWP::UserAgent->new;
 $ua->proxy(https => 'http://user:pass@proxy');
 $ua->get('https://server');

或者,您可以将环境变量https_proxy设置为相同的值,即http://user:pass@proxy

在6.06之前,代理支持被破坏,至少当与IO::Socket::SSL一起使用时(自6.0版本以来默认)。您在问题中使用的语法是针对旧后端Crypt::SSLeay的,因为它没有正确检查证书,因此不再建议使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39346745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档