POE::Filter::HTTP::Parser(3pm) | User Contributed Perl Documentation | POE::Filter::HTTP::Parser(3pm) |
POE::Filter::HTTP::Parser - A HTTP POE filter for HTTP clients or servers
version 1.08
use POE::Filter::HTTP::Parser; # For HTTP Servers my $request_filter = POE::Filter::HTTP::Parser->new( type => 'server' ); my $arrayref_of_request_objects = $filter->get( [ $stream ] ); my $arrayref_of_HTTP_stream = $filter->put( $arrayref_of_response_objects ); # For HTTP clients my $response_filter = POE::Filter::HTTP::Parser->new( type => 'client' ); my $arrayref_of_HTTP_stream = $filter->put( $arrayref_of_request_objects ); my $arrayref_of_response_objects = $filter->get( [ $stream ] );
POE::Filter::HTTP::Parser is a POE::Filter for HTTP which is based on HTTP::Parser.
It can be used to easily create POE based HTTP servers or clients.
With the "type" set to "client", which is the default behaviour, "get" will parse HTTP::Response objects from HTTP streams and "put" will accept HTTP::Request objects and convert them to HTTP streams.
With the "type" set to "server", the reverse will happen. "get" will parse HTTP::Request objects from HTTP streams and "put" will accept HTTP::Response objects and convert them to HTTP streams. Like POE::Filter::HTTPD if there is an error parsing the HTTP request, this filter will generate a HTTP::Response object instead, to encapsulate the error message, suitable for simply sending back to the requesting client.
'type', set to either 'client' or 'server', default is 'client';
If "type" is "client", then this accepts HTTP::Request objects. If "type" is "server", then this accepts HTTP::Response objects.
This does make sense if you think about it.
The given objects are returned to their stream form.
The "put" method for HTTP responses was borrowed from POE::Filter::HTTPD, along with the code to generate HTTP::Response on a parse error, by Artur Bergman and Rocco Caputo.
POE::Filter
HTTP::Parser
POE::Filter::HTTPD
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2016 by Chris Williams, Artur Bergman and Rocco Caputo.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
2022-06-17 | perl v5.34.0 |