AnyEvent-HTTP-LWP-UserAgent

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

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 )