Manpage logo

HTTP::Tinyish - HTTP::Tiny compatible HTTP client wrappers

NAME  SYNOPSIS  DESCRIPTION  BACKEND SELECTION  COMPATIBILITIES  LWP  HTTP::Tiny  Curl  Wget  SIMILAR MODULES  AUTHOR  COPYRIGHT  LICENSE 

NAME

HTTP::Tinyish − HTTP::Tiny compatible HTTP client wrappers

SYNOPSIS

my $http = HTTP::Tinyish−>new(agent => "Mozilla/4.0");
my $res = $http−>get("http://www.cpan.org/");
warn $res−>{status};
$http−>post("http://example.com/post", {
headers => { "Content−Type" => "application/x−www−form−urlencoded" },
content => "foo=bar&baz=quux",
});
$http−>mirror("http://www.cpan.org/modules/02packages.details.txt.gz", "./02packages.details.txt.gz");

DESCRIPTION

HTTP::Tinyish is a wrapper module for HTTP client modules LWP, HTTP::Tiny and HTTP client software "curl" and "wget".

It provides an API compatible to HTTP::Tiny, and the implementation has been extracted out of App::cpanminus. This module can be useful in a restrictive environment where you need to be able to download CPAN modules without an HTTPS support in built−in HTTP library.

BACKEND SELECTION

Backends are searched in the order of: LWP, HTTP::Tiny, "curl" and "wget". HTTP::Tinyish will auto−detect if the backend also supports HTTPS, and use the appropriate backend based on the given URL to the request methods.

For example, if you only have HTTP::Tiny but without SSL related modules, it is possible that:

my $http = HTTP::Tinyish−>new;
$http−>get("http://example.com"); # uses HTTP::Tiny
$http−>get("https://example.com"); # uses curl

COMPATIBILITIES

All request related methods such as "get", "post", "put", "delete", "request", "patch" and "mirror" are supported.

LWP

LWP backend requires LWP 5.802 or over to be functional, and LWP::Protocol::https to send HTTPS requests.

"mirror" method doesn't consider third options hash into account (i.e. you can't override the HTTP headers).

proxy is automatically detected from environment variables.

"timeout", "max_redirect", "agent", "default_headers" and "verify_SSL" are translated.

HTTP::Tiny

Because the actual HTTP::Tiny backend is used, all APIs are supported.

Curl

This module has been tested with curl 7.22 and later.

HTTPS support is automatically detected by running "curl −−version" and see its protocol output.

"timeout", "max_redirect", "agent", "default_headers" and "verify_SSL" are supported.

Wget

This module requires Wget 1.12 and later.

Wget prior to 1.15 doesn't support sending custom HTTP methods, so if you use "$http−>put" for example, you'll get an internal error response (599).

HTTPS support is automatically detected.

mirror() method doesn't send "If−Modified−Since" header to the server, which will result in full−download every time because "wget" doesn't support "−−timestamping" combined with "−O" option.

"timeout", "max_redirect", "agent", "default_headers" and "verify_SSL" are supported.

SIMILAR MODULES

File::Fetch − is core since 5.10. Has support for non−HTTP protocols such as ftp and git. Does not support HTTPS or basic authentication as of this writing.

Plient − provides more complete runtime API, but seems only compatible on Unix environments. Does not support mirror() method.

AUTHOR

Tatsuhiko Miyagawa

COPYRIGHT

Tatsuhiko Miyagawa, 2015−

LICENSE

This module is licensed under the same terms as Perl itself.


Updated 2026-06-01 - jenkler.se | uex.se