NAME
HTTP::Curl - HTTP interface for Net::Curl (clone of HTTP::Any::Curl)
SYNOPSIS
use
HTTP::Curl;
my
(
$is_success
,
$body
,
$headers
,
$redirects
) = HTTP::Curl::do_http(
$easy
,
$url
,
$opt
);
DESCRIPTION
Curl
use
Net::Curl::Easy;
use
HTTP::Curl;
my
$easy
= Net::Curl::Easy->new();
my
(
$is_success
,
$body
,
$headers
,
$redirects
) = HTTP::Curl::do_http(
$easy
,
$url
,
$opt
);
or
my
$cb
=
sub
{
my
(
$is_success
,
$body
,
$headers
,
$redirects
) =
@_
;
...
};
HTTP::Curl::do_http(
undef
,
$easy
,
$url
,
$opt
,
$cb
);
Curl with Multi
use
Net::Curl::Easy;
use
Net::Curl::Multi;
use
Net::Curl::Multi::EV;
use
HTTP::Curl;
my
$multi
= Net::Curl::Multi->new();
my
$curl_ev
= Net::Curl::Multi::EV::curl_ev(
$multi
);
my
$easy
= Net::Curl::Easy->new();
my
$cb
=
sub
{
my
(
$is_success
,
$body
,
$headers
,
$redirects
) =
@_
;
...
};
HTTP::Curl::do_http(
$curl_ev
,
$easy
,
$url
,
$opt
,
$cb
);
...
Parameters
options
- referer
-
Referer url
- agent
-
User agent name
- timeout
-
Timeout, seconds
- compressed
-
This option adds 'Accept-Encoding' header to the HTTP query and tells that the response must be decoded. If you don't want to decode the response, please add 'Accept-Encoding' header into the 'headers' parameter.
- headers
-
Ref on HASH of HTTP headers:
{
'Accept'
=>
'*/*'
,
...
}
-
It enables cookies support. The "" values enables the session cookies support without saving them.
- persistent
-
1 or 0. Try to create/reuse a persistent connection. When not specified, see the default behavior of Curl (reverse of CURLOPT_FORBID_REUSE).
- proxy
-
http and socks proxy
proxy
=>
"$host:$port"
or
where scheme can be one of the: http, socks (socks5), socks5, socks4.
proxy_auth
=> [user, password]
- max_size
-
The size limit for response content, bytes.
HTTP::Curl - will return the result partially.
When max_size options will be triggered, 'client-aborted' header will added with 'max_size' value.
- max_redirect
-
The limit of how many times it will obey redirection responses in a given request cycle.
By default, the value is 7.
- body
-
Data for POST method.
String or CODE ref to return strings (return undef is end of body data).
- method
-
When method parameter is "POST", the POST request is used with body parameter on data and 'Content-Type' header is added with 'application/x-www-form-urlencoded' value.
- verbose
-
verbose
=> 1
finish callback function
my
$cb
=
sub
{
my
(
$is_success
,
$body
,
$headers
,
$redirects
) =
@_
;
...
};
where:
- is_success
-
It is true, when HTTP code is 2XX.
- body
-
HTML body. When on_header callback function is defined, then body is undef.
- headers
-
Ref on HASH of HTTP headers (lowercase) and others info: Status, Reason, URL
- redirects
-
Previous headers from last to first
on_header callback function
When specified, this callback will be called after getting all headers.
$opt
{on_header} =
sub
{
my
(
$is_success
,
$headers
,
$redirects
) =
@_
;
...
};
on_body callback function
When specified, this callback will be called on each chunk.
$opt
{on_body} =
sub
{
my
(
$body
) =
@_
;
# body chunk
...
};
NOTES
Turn off the persistent options to download pages of many sites.
Use libcurl with "Asynchronous DNS resolution via c-ares".
AUTHOR
Nick Kostyria <kni@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2013 by Nick Kostyria
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.