NAME
POE::Filter::HTTP::Parser - A HTTP POE filter for HTTP clients or servers
VERSION
version 1.08
SYNOPSIS
# 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 inclient
orserver
mode.client
is the default iftype
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 toserver
orclient
, respectively.If
type
isclient
, then this accepts HTTP::Request objects. Iftype
isserver
, 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
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.