App-Unicheck-Modules-HTTP

 view release on metacpan or  search on metacpan

lib/App/Unicheck/Modules/HTTP.pm  view on Meta::CPAN

package App::Unicheck::Modules::HTTP;

use 5.10.1;
use strict;
use warnings FATAL => 'all';
use Moo;
use Getopt::Long qw(GetOptionsFromArray);
use Mojo::UserAgent;
use Try::Tiny;
use JSON;
use Time::HiRes;

=head1 NAME

App::Unicheck::Modules::HTTP - App::Unicheck module to check web urls.

=head1 VERSION

Version 0.03

=cut

our $VERSION = '0.03';


=head1 SYNOPSIS

App::Unicheck::Modules::HTTP can check return status, response time and size of web resources.

    # to show available information on parameters run
    unicheck --info HTTP

=cut

sub run {
    my ($self, $action, @params) = @_;

    $self->$action(@params);
}

=head1 ACTIONS

=head2 status

Get the status code of a call to an URL.

    unicheck HTTP status --url example.com

=cut

sub status {
    my ($self, @params) = @_;

    my $url    = 'http://127.0.0.1/';
    my $redirects = 3;
    my $format = 'num';

    GetOptionsFromArray([@params],
        'url=s' => \$url,
        'redirects=i' => \$redirects,
        'format=s' => \$format,
    );

    my $ua      = Mojo::UserAgent->new->max_redirects($redirects);
    my $tx      = $ua->get($url);
    my $status  = $tx->res->code;
    my $headers = $tx->res->content->headers->{headers};

    $self->_return($status, $headers, $format);



( run in 0.888 second using v1.01-cache-2.11-cpan-39bf76dae61 )