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

时间:2013-05-22 11:14:50

标签: json perl https

我找到了许多Perl和JSON的例子,这些例子帮助我更好地理解它。

Simple JSON parsing using Perl 的答案中提供的代码很好,我的问题示例在下面使用。

我无法从HTTPS链接中获取JSON,我不确定原因。

如果我使用以上示例代码,则适用于我:

"http:..."

作为$trendsurl,但它在模具行上失败(添加$!),

  

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

如果我使用

"https:..."

为什么https会失败,我该如何让它运作?

1 个答案:

答案 0 :(得分:4)

您需要安装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;
 }