App-MatrixTool
view release on metacpan or search on metacpan
lib/App/MatrixTool/HTTPClient.pm view on Meta::CPAN
=head1 METHODS
=cut
sub ua
{
my $self = shift;
return $self->{ua} ||= do {
require IO::Async::SSL;
require Net::Async::HTTP;
require HTTP::Request;
my $ua = Net::Async::HTTP->new(
SSL_verify_mode => 0,
fail_on_error => 1, # turn 4xx/5xx errors into Future failures
);
$self->{loop}->add( $ua );
$ua;
};
}
lib/App/MatrixTool/HTTPClient.pm view on Meta::CPAN
sub request
{
my $self = shift;
my %params = @_;
my $uri = URI->new;
$uri->path( $params{path} );
$uri->query_form( %{ $params{params} } ) if $params{params};
my $ua = $self->ua;
my $req = $params{request} // HTTP::Request->new( $params{method} => $uri,
[ Host => $params{server} ],
);
$req->protocol( "HTTP/1.1" );
if( defined $params{content} ) {
if( ref $params{content} ) {
$req->content( encode_json( delete $params{content} ) );
$req->header( Content_type => "application/json" );
}
else {
( run in 0.494 second using v1.01-cache-2.11-cpan-de7293f3b23 )