NAME POE::Component::SmokeBox::Recent::HTTP - an extremely minimal HTTP client VERSION version 1.54 SYNOPSIS # Obtain the RECENT file from a given CPAN mirror. use strict; use warnings; use File::Spec; use POE qw(Component::SmokeBox::Recent::HTTP); use URI; my $url = shift || die "You must provide a url parameter\n"; my $uri = URI->new( $url ); die "Unsupported scheme\n" unless $uri->scheme and $uri->scheme eq 'http'; $uri->path( File::Spec::Unix->catfile( $uri->path(), 'RECENT' ) ); POE::Session->create( package_states => [ main => [qw(_start http_sockerr http_timeout http_response)], ] ); $poe_kernel->run(); exit 0; sub _start { POE::Component::SmokeBox::Recent::HTTP->spawn( uri => $uri, ); return; } sub http_sockerr { warn join ' ', @_[ARG0..$#_]; return; } sub http_timeout { warn $_[ARG0], "\n"; return; } sub http_response { my $http_response = $_[ARG0]; print $http_response->as_string; return; } DESCRIPTION POE::Component::SmokeBox::Recent::HTTP is the small helper module used by POE::Component::SmokeBox::Recent to do HTTP client duties. It only implements a simple request with no following of redirections and connection keep-alive, etc. CONSTRUCTOR spawn Takes a number of parameters: 'uri', a URI object for the URL you wish to retrieve, mandatory; 'session', optional if the poco is spawned from within another session; 'prefix', specify an event prefix other than the default of 'http'; 'timeout', specify a timeout in seconds, default is 60; OUTPUT EVENTS The component sends the following events. If you have changed the prefix option in spawn then substitute http with the event prefix that you specified. http_sockerr Generated if there is a problem connecting to the given HTTP host/address. ARG0 contains the name of the operation that failed. ARG1 and ARG2 hold numeric and string values for $!, respectively. http_timeout Triggered if we don't get a response from the HTTP server. http_response Emitted when the transfer has finished. ARG0 will be a HTTP::Response object. It is up to you to check the status, etc. of the response. AUTHOR Chris Williams COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Chris Williams. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.