FreeBSD Manual Pages
AnyEvent::HTTP::LWP::UUsergContributed Perl DAnyEvent::HTTP::LWP::UserAgent(3) NAME AnyEvent::HTTP::LWP::UserAgent - LWP::UserAgent interface but works using AnyEvent::HTTP VERSION version 0.10 SYNOPSIS use AnyEvent::HTTP::LWP::UserAgent; use Coro; my $ua = AnyEvent::HTTP::LWP::UserAgent->new; my @urls = (...); my @coro = map { my $url = $_; async { my $r = $ua->get($url); print "url $url, content " . $r->content . "\n"; } } @urls; $_->join for @coro; # Or without Coro use AnyEvent::HTTP::LWP::UserAgent; use AnyEvent; my $ua = AnyEvent::HTTP::LWP::UserAgent->new; my @urls = (...); my $cv = AE::cv; $cv->begin; foreach my $url (@urls) { $cv->begin; $ua->get_async($url)->cb(sub { my $r = shift->recv; print "url $url, content " . $r->content . "\n"; $cv->end; }); } $cv->end; $cv->recv; DESCRIPTION When you use Coro you have a choice: you can use Coro::LWP or AnyEvent::HTTP (if you want to make asynchronous HTTP requests). If you use Coro::LWP, some modules may work incorrectly (for example Cache::Memcached) because of global change of IO::Socket behavior. AnyEvent::HTTP uses different programming interface, so you must change more of your old code with LWP::UserAgent (and HTTP::Request and so on), if you want to make asynchronous code. AnyEvent::HTTP::LWP::UserAgent uses AnyEvent::HTTP inside but have an interface of LWP::UserAgent. You can safely use this module in Coro environment (and possibly in AnyEvent too). In plain AnyEvent, you may use _async methods. They don't make blocking wait but return condition variable. So, you can avoid recursive blocking wait error. SOME METHODS $ua->conn_cache $ua->conn_cache($cache_obj) New versions of "AnyEvent::HTTP" supports HTTP(S)/1.1 persistent connection, so you can control it in "AnyEvent::HTTP::LWP::UserAgent" using "conn_cache" method. If you set "conn_cache" (as "LWP::ConnCache" object) then "Anyevent::HTTP::LWP::UserAgent" makes two things. In first it sets global variable $AnyEvent::HTTP::ACTIVE as you setted "total_capacity" for "conn_cache" (be careful: this have a global consequences, not local). And in the second "AnyEvent::HTTP::LWP::UserAgent" will create persistent connections if your $ua have "conn_cache" (local propery of $ua). But you can't use remainder methods of your "conn_cache", all connections will contains in "AnyEvent::HTTP". $AnyEvent::HTTP::ACTIVE sets only when you set "conn_cache" for $ua. If you just change "total_capacity" of old "conn_cache" it will not change anything. ASYNC METHODS The following methods are async version of corresponding methods w/o _async suffix. Parameters are identical as originals. However, return value becomes condition variable. You can use it in a synchronous way by blocking wait $ua->simple_request_async(@args)->recv or in an asynchronous way, also. $ua->simple_request_async(@args)->cb(sub { ... }); simple_request_async request_async get_async post_async head_async put_async delete_async LIMITATIONS AND DETAILS Some features of LWP::UserAgent can be broken ("protocols_forbidden" or something else). Precise documentation and realization of these features will come in the future. You can use some AnyEvent::HTTP global function and variables. But use "agent" of UA instead of $AnyEvent::HTTP::USERAGENT and "max_redirect" instead of $AnyEvent::HTTP::MAX_RECURSE. Content in request can be specified by code reference. This is the same as LWP::UserAgent but there are some limitations. LWP::UserAgent uses chunked encoding if Content-Length is not specified, while this module does NOT use chunked encoding even if Content-Length is not specified. Content in response can be specified as filename or code reference. This is the same as LWP::UserAgent. SEE ALSO <http://github.com/tadam/AnyEvent-HTTP-LWP-UserAgent> Coro::LWP AnyEvent::HTTP LWP::Protocol::AnyEvent::http LWP::Protocol::Coro::http ACKNOWLEDGEMENTS Yasutaka Atarashi AUTHOR Yury Zavarin <yury.zavarin@gmail.com> COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Yury Zavarin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.32.0 2012-12-10 AnyEvent::HTTP::LWP::UserAgent(3)
NAME | VERSION | SYNOPSIS | DESCRIPTION | SOME METHODS | ASYNC METHODS | LIMITATIONS AND DETAILS | SEE ALSO | ACKNOWLEDGEMENTS | AUTHOR | COPYRIGHT AND LICENSE
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=AnyEvent::HTTP::LWP::UserAgent&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>