-
-
20 Jun 2022 23:45:13 UTC
- Distribution: HTTP-Tinyish
- Module version: 0.18
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues
- Testers (571 / 0 / 0)
- Kwalitee
Bus factor: 1- 18.39% Coverage
- License: perl_5
- Perl: v5.8.1
- Activity
24 month- Tools
- Download (17.12KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- NAME
- SYNOPSIS
- DESCRIPTION
- BACKEND SELECTION
- COMPATIBILITIES
- 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
andwget
.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
andwget
. 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
andmirror
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
andverify_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
andverify_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 sendIf-Modified-Since
header to the server, which will result in full-download every time becausewget
doesn't support--timestamping
combined with-O
option.timeout
,max_redirect
,agent
,default_headers
andverify_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.
Module Install Instructions
To install HTTP::Tinyish, copy and paste the appropriate command in to your terminal.
cpanm HTTP::Tinyish
perl -MCPAN -e shell install HTTP::Tinyish
For more information on module installation, please visit the detailed CPAN module installation guide.