Не нужно использовать curl
. Используйте curl2lwp для перевода ваших запросов в Perl, используя LWP :: UserAgent .
. Используйте библиотеку для анализа JSON. Здесь я использовал Cpanel :: JSON :: XS , но для таких простых вещей, как этот, любой другой должен работать.
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use Cpanel::JSON::XS;
my $ua = 'LWP::UserAgent'->new(send_te => 0);
my $req = 'HTTP::Request'->new(
GET => 'https://api.xxx/',
[
'Accept' => '*/*',
'Authorization' => 'Bearer DS_12345',
'Host' => 'api.xxx:443',
'User-Agent' => 'curl/7.55.1',
'Content-Type' => 'application/json',
],
);
my $res = $ua->request($req);
die $res->status_line unless $res->is_success;
my $response_structure = decode_json($res->decoded_content);
if ($response_structure eq 'DONE') {
my $req = 'HTTP::Request'->new(
GET => $response_structure->{'export-url'} . '?view=xml',
[
'Accept' => '*/*',
'Authorization' => 'Bearer DS_12345',
'Host' => 'api.xxx:443',
'User-Agent' => 'curl/7.55.1',
'Content-Type' => 'application/json',
],
);
my $res = $ua->request($req);
...
}