AnyEvent-HTTP-LWP-UserAgent
view release on metacpan or search on metacpan
generated_by: 'Dist::Zilla version 4.300028, CPAN::Meta::Converter version 2.120921'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: AnyEvent-HTTP-LWP-UserAgent
requires:
AnyEvent: 5
AnyEvent::HTTP: 2.1
HTTP::Headers::Util: 0
HTTP::Request::Common: 0
HTTP::Response: 0
LWP::UserAgent: 5.815
parent: 0
strict: 0
warnings: 0
version: 0.10
Makefile.PL view on Meta::CPAN
"ExtUtils::MakeMaker" => "6.30"
},
"DISTNAME" => "AnyEvent-HTTP-LWP-UserAgent",
"EXE_FILES" => [],
"LICENSE" => "perl",
"NAME" => "AnyEvent::HTTP::LWP::UserAgent",
"PREREQ_PM" => {
"AnyEvent" => 5,
"AnyEvent::HTTP" => "2.1",
"HTTP::Headers::Util" => 0,
"HTTP::Request::Common" => 0,
"HTTP::Response" => 0,
"LWP::UserAgent" => "5.815",
"parent" => 0,
"strict" => 0,
"warnings" => 0
},
"VERSION" => "0.10",
"test" => {
"TESTS" => "t/*.t"
}
lib/AnyEvent/HTTP/LWP/UserAgent.pm view on Meta::CPAN
};
return $cv;
}
sub simple_request {
return shift->simple_request_async(@_)->recv;
}
sub get_async {
require HTTP::Request::Common;
my($self, @parameters) = @_;
my @suff = $self->_process_colonic_headers(\@parameters,1);
return $self->request_async( HTTP::Request::Common::GET( @parameters ), @suff );
}
sub post_async {
require HTTP::Request::Common;
my($self, @parameters) = @_;
my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
return $self->request_async( HTTP::Request::Common::POST( @parameters ), @suff );
}
sub head_async {
require HTTP::Request::Common;
my($self, @parameters) = @_;
my @suff = $self->_process_colonic_headers(\@parameters,1);
return $self->request_async( HTTP::Request::Common::HEAD( @parameters ), @suff );
}
sub put_async {
require HTTP::Request::Common;
my($self, @parameters) = @_;
my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1));
return $self->request_async( HTTP::Request::Common::PUT( @parameters ), @suff );
}
sub delete_async {
require HTTP::Request::Common;
my($self, @parameters) = @_;
my @suff = $self->_process_colonic_headers(\@parameters,1);
return $self->request_async( HTTP::Request::Common::DELETE( @parameters ), @suff );
}
sub get {
return shift->get_async(@_)->recv;
}
sub post {
return shift->post_async(@_)->recv;
}
lib/AnyEvent/HTTP/LWP/UserAgent.pm view on Meta::CPAN
$cv->end;
$cv->recv;
=head1 DESCRIPTION
When you use Coro you have a choice: you can use L<Coro::LWP> or L<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.
t/request_content_ref.t view on Meta::CPAN
my $port = shift;
my $server = HTTP::Server::Simple::Test->new($port);
$server->run;
},
client => sub {
my $port = shift;
my @content = ('This', ' ', 'is', ' ', 'content.', '');
my $ua = $pkg->new(cookie_jar => {});
# For AnyEvent::HTTP::LWP::UserAgent, even if Content-Length is not specified, chunked encoding is NOT used.
# For LWP::UserAgent, if Content-Length is not specified, chunked encoding is used.
my $req = HTTP::Request->new('PUT', "http://localhost:$port/", ['Content-Type' => 'text/plain', 'Content-Length' => 16], sub { return shift @content });
my $res = $ua->request($req);
ok $res->is_success;
like $ua->cookie_jar->as_string, qr/test=abc/, '$ua->cookie_jar set';
is $res->base, 'http://www.example.com/', '$res->base set';
like($res->content, qr{<p>This is content\.</p>}, 'content');
},
);
( run in 1.147 second using v1.01-cache-2.11-cpan-de7293f3b23 )