我发现了许多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失败,如何使它正常工作?
您需要安装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)