Provided by: libpoe-filter-http-parser-perl_1.08-2_all bug

NAME

       POE::Filter::HTTP::Parser - A HTTP POE filter for HTTP clients or servers

VERSION

       version 1.08

SYNOPSIS

           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 ] );

DESCRIPTION

       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.

CONSTRUCTOR

       "new"
           Creates a new POE::Filter::HTTP::Parser object. Takes one optional argument, "type"
           which determines whether the filter will act in "client" or "server" mode. "client" is
           the default if "type" is not specified.

             'type', set to either 'client' or 'server', default is 'client';

METHODS

       "get"
       "get_one_start"
       "get_one"
           Takes an arrayref which contains lines of text. Returns an arrayref of either
           HTTP::Request or HTTP::Response objects depending on the "type" that has been
           specified.

       "get_pending"
           Returns any data remaining in a filter's input buffer. The filter's input buffer is
           not cleared, however.  Returns an array reference if there's any data, or undef if the
           filter was empty.

       "put"
           Takes an arrayref of either HTTP::Response objects or HTTP::Request objects depending
           on whether "type" is set to "server" or "client", respectively.

           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.

       "clone"
           Makes a copy of the filter, and clears the copy's buffer.

CREDITS

       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.

SEE ALSO

       POE::Filter

       HTTP::Parser

       POE::Filter::HTTPD

AUTHOR

       Chris Williams <chris@bingosnet.co.uk>

COPYRIGHT AND LICENSE

       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.