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 <chris@bingosnet.co.uk> 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.