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.