AnyEvent-Net-Curl-Queued
view release on metacpan or search on metacpan
lib/AnyEvent/Net/Curl/Queued/Easy.pm view on Meta::CPAN
Use C<$str> to compute the C<unique> value.
Useful to successfully enqueue POST parameters.
=head2 init()
Initialize the instance.
We can't use the default C<BUILD> method as we need the initialization to be done B<after> the instance is in the queue.
You are supposed to build your own stuff after/around/before this method using L<method modifiers|Moose::Manual::MethodModifiers>.
=head2 has_error()
Error handling: if C<has_error> returns true, the request is re-enqueued (until the retries number is exhausted).
You are supposed to build your own stuff after/around/before this method using L<method modifiers|Moose::Manual::MethodModifiers>.
For example, to retry on server error (HTTP 5xx response code):
around has_error => sub {
my $orig = shift;
my $self = shift;
return 1 if $self->$orig(@_);
return 1 if $self->getinfo('response_code') =~ m{^5[0-9]{2}$};
};
=head2 finish($result)
Called when the download is finished.
C<$result> holds the C<Net::Curl::Easy::Code>.
You are supposed to build your own stuff after/around/before this method using L<method modifiers|Moose::Manual::MethodModifiers>.
=head2 clone()
Clones the instance, for re-enqueuing purposes.
You are supposed to build your own stuff after/around/before this method using L<method modifiers|Moose::Manual::MethodModifiers>.
=head2 setopt(OPTION => VALUE [, OPTION => VALUE])
Extends L<Net::Curl::Easy> C<setopt()>, allowing option lists:
$self->setopt(
CURLOPT_ENCODING, '',
CURLOPT_FOLLOWLOCATION, 1,
CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
CURLOPT_VERBOSE, 1,
);
Or even shorter:
$self->setopt(
encoding => '',
followlocation => 1,
useragent => 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
verbose => 1,
);
Complete list of options: L<http://curl.haxx.se/libcurl/c/curl_easy_setopt.html>
If C<CURLOPT_POSTFIELDS> is a C<HashRef> or looks like a valid JSON (validates via L<JSON>),
it is encoded as UTF-8 and C<Content-Type: application/json; charset=utf-8> header is set automatically.
=head2 getinfo(VAR_NAME [, VAR_NAME])
Extends L<Net::Curl::Easy> C<getinfo()> so it is able to get several variables at once;
C<HashRef> parameter under void context will fill respective values in the C<HashRef>:
my $x = {
content_type => 0,
speed_download => 0,
primary_ip => 0,
};
$self->getinfo($x);
C<HashRef> parameter will return another C<HashRef>:
my $x = $self->getinfo({
content_type => 0,
speed_download => 0,
primary_ip => 0,
});
C<ArrayRef> parameter will return a list:
my ($content_type, $speed_download, $primary_ip) =
$self->getinfo([qw(content_type speed_download primary_ip)]);
Complete list of options: L<http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html>
=head1 FUNCTIONS
=head2 FOREIGNBUILDARGS
Internal.
Required for L<Moo> to operate properly on C<new> parameters.
=for Pod::Coverage BUILDARGS
res
=head1 SEE ALSO
=over 4
=item *
L<Moo>
=item *
L<Net::Curl::Easy>
=back
=head1 AUTHOR
Stanislaw Pusep <stas@sysd.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Stanislaw Pusep.
( run in 2.016 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )