如何从Perl中的HTTPS链接获取JSON?

Qua*_*ReD 2 perl https json

我发现了许多Perl和JSON的示例,这些示例可以帮助我更好地理解它。

使用Perl进行简单JSON解析的答案中提供的代码很好,并且在下面的示例中使用了该代码。

我在从HTTPS链接“获取” JSON时遇到麻烦,我不确定为什么。

如果我使用上面的示例代码,对我有用:

"http:..."
Run Code Online (Sandbox Code Playgroud)

作为$trendsurl,但在死线(添加$!)上失败,

“无法获取https:...- json-simple.pl第23行没有此类文件或目录。”

如果我用

"https:..."
Run Code Online (Sandbox Code Playgroud)

为什么会https失败,如何使它正常工作?

var*_*run 5

您需要安装LWP:Protocol:https才能使HTTPS请求生效。如果您正在使用Ubuntu,则还需要build-essential libssl-dev。完成后,您应该能够发出HTTPS请求。

这是一个通过HTTPS调用Twitter的代码段。

#!/usr/bin/perl

 use LWP::UserAgent;
 use HTTP::Request;

 my $URL = 'https://www.twitter.com/';

 my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });
 my $header = HTTP::Request->new(GET => $URL);
 my $request = HTTP::Request->new('GET', $URL, $header);
 my $response = $ua->request($request);

 if ($response->is_success){
     print "URL:$URL\nHeaders:\n";
     print $response->headers_as_string;
 }elsif ($response->is_error){
     print "Error:$URL\n";
     print $response->error_as_HTML;
 }
Run Code Online (Sandbox Code Playgroud)