DNS-Robot
view release on metacpan or search on metacpan
lib/DNS/Robot.pm view on Meta::CPAN
$self->{http} = HTTP::Tiny->new(
agent => $self->{user_agent},
timeout => $self->{timeout},
);
return $self;
}
# ââ Internal helpers ââ
sub _post {
my ($self, $endpoint, $payload) = @_;
my $url = "$self->{base_url}/$endpoint";
my $body = encode_json($payload);
my $res = $self->{http}->request('POST', $url, {
headers => { 'Content-Type' => 'application/json' },
content => $body,
});
croak "DNS::Robot: HTTP $res->{status} from $endpoint"
unless $res->{success};
return decode_json($res->{content});
}
sub _get {
my ($self, $endpoint, $params) = @_;
my $query = join '&', map { "$_=" . _uri_encode($params->{$_}) } sort keys %$params;
my $url = "$self->{base_url}/$endpoint?$query";
my $res = $self->{http}->request('GET', $url);
croak "DNS::Robot: HTTP $res->{status} from $endpoint"
unless $res->{success};
return decode_json($res->{content});
}
sub _uri_encode {
my ($str) = @_;
$str =~ s/([^A-Za-z0-9\-._~])/sprintf("%%%02X", ord($1))/ge;
return $str;
}
( run in 1.539 second using v1.01-cache-2.11-cpan-9789f410c06 )