HTTP::Tinyish - HTTP::Tiny compatible HTTP client wrappers
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");
HTTP::Tinyish is a wrapper module for HTTP client modules LWP, HTTP::Tiny and HTTP client software curl and wget.
curl
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.
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
All request related methods such as get, post, put, delete, request, patch and mirror are supported.
get
post
put
delete
request
patch
mirror
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.
timeout
max_redirect
agent
default_headers
verify_SSL
Because the actual HTTP::Tiny backend is used, all APIs are supported.
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.
curl --version
timeout, max_redirect, agent, default_headers and verify_SSL are supported.
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).
$http->put
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.
mirror()
If-Modified-Since
--timestamping
-O
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.
Tatsuhiko Miyagawa
Tatsuhiko Miyagawa, 2015-
This module is licensed under the same terms as Perl itself.
To install HTTP::Tinyish, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTTP::Tinyish
CPAN shell
perl -MCPAN -e shell install HTTP::Tinyish
For more information on module installation, please visit the detailed CPAN module installation guide.