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.
mirrormethod 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_headersandverify_SSLare 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 --versionand see its protocol output.timeout,max_redirect,agent,default_headersandverify_SSLare 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->putfor example, you'll get an internal error response (599).HTTPS support is automatically detected.
mirror()method doesn't sendIf-Modified-Sinceheader to the server, which will result in full-download every time becausewgetdoesn't support--timestampingcombined with-Ooption.timeout,max_redirect,agent,default_headersandverify_SSLare 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.