in reply to url issues using HTTP::Tiny

As per the HTTP::Tiny docs, a status code of 599 is a fake code that indicates an internal error, and you should check $response->{content} for the actual error message. Since you're accessing SSL sites, you also want to make sure you have IO::Socket::SSL 1.56 or greater and Net::SSLeay 1.49 or greater installed.

Replies are listed 'Best First'.
Re^2: url issues using HTTP::Tiny
by marto (Cardinal) on Sep 18, 2019 at 13:43 UTC
Re^2: url issues using HTTP::Tiny
by Anonymous Monk on Sep 18, 2019 at 14:56 UTC

    Thanks this is the info that I was after. I am however a bit confused since I thought that HTTP::Tiny is part of the core perl distribution. I'm using 5.14.2 . So it ships without all the dependant modules ?

      https support is not in the Perl core.

      Don't worry! HTTP::Tiny will rot bits as webmasters implement HTTPS Everywhere! except for the backlash of hip retro unencrypted sites! Then one day HTTP::Tiny, after years of recommendations followed by years of disillusionment [YOU ARE HERE] followed by years of disparagement, will be unceremoniously deprecated and REMOVED FROM THE PERL CORE!

      If it could happen to CGI, it will probably happen to HTTP::Tiny 🔋🗑

      UNLESS someone rescues HTTP::Tiny to evolve some sort of fallback functionality along the lines of HTTP::Any like this silly core one-liner, when fed an https url on an https-less perl, will fail and fallback on a random selection of wget or curl (or, like, all known https clients on every operating system?):

      perl -MIPC::Cmd=can_run,run -MHTTP::Tiny -le'@c=({wget=>"wget -O-"},{c +url=>"curl"});$u=shift;$r=HTTP::Tiny->new->get($u);if($r->{status}==5 +99){($a,$b)=%{$c[rand@c]};if(my $cmd=can_run($a)){if(scalar run(comma +nd=>"$b $u",buffer=>\my $data)){print"$data\n$cmd"}}}else{print"$r->{ +content}\ntiny"}' "https://www.perlmonks.org"
      perl -MIPC::Cmd=can_run,run -MHTTP::Tiny -le' @c=({wget=>"wget -O-"},{curl=>"curl"}); $u=shift; $r=HTTP::Tiny->new->get($u); if($r->{status}==599){ ($a,$b)=%{$c[rand@c]}; if(my $cmd=can_run($a)){ if(scalar run(command=>"$b $u",buffer=>\my $data){ print"$data\n$cmd" } } } else{print"$r->{content}\ntiny"}' "https://www.perlmonks.org"
      Let's fix it!

        The reason that HTTP::Tiny is in core is as a fallback for CPAN to use when wget or curl don't work. So there is no need to "fix" this.