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 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.