【发布时间】:2018-05-16 10:44:53
【问题描述】:
我正在尝试使用 LWP::UserAgent 发出 https 请求:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $login_url = 'https://www.icscards.nl/abnamrogb/login/login';
my $ssl_options = { SSL_version => 'tlsv1', verify_hostname => 0 };
my $browser = LWP::UserAgent->new(ssl_opts => $ssl_options);
$browser->cookie_jar( {} );
my $response = $browser->get($login_url);
print $response->decoded_content;
并得到以下错误信息:
Can't connect to www.icscards.nl:443
LWP::Protocol::https::Socket: SSL connect attempt failed because of handshake problems error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure at /System/Library/Perl/Extras/5.18/LWP/Protocol/http.pm line 51.
将 URL 更改为例如https://www.google.com/ 工作正常,但不是我要获取的 URL。
值得注意的是:当我用 python 向这个 URL 发出请求时,我得到了同样的错误。
【问题讨论】:
-
您的代码片段可以正常工作并打印页面内容而没有任何错误。使用:macOS Sierra, (darwin 16.7), LWP::UserAgent: 6.26, Mozilla::CA: 20160104, IO::Socket::SSL: 2.052
-
也有 lwp https 问题并永久切换到 mojo::useragent。 RIP LWP。
\o/
标签: perl https handshake lwp-useragent sslv3