Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

HTTP::Body
HTTP Body Parser

HTTP::Body - HTTP Body Parser


NAME

HTTP::Body - HTTP Body Parser


SYNOPSIS


    use HTTP::Body;

    

    sub handler : method {

        my ( $class, $r ) = @_;

        my $content_type   = $r->headers_in->get('Content-Type');

        my $content_length = $r->headers_in->get('Content-Length');

        

        my $body   = HTTP::Body->new( $content_type, $content_length );

        my $length = $content_length;

        while ( $length ) {

            $r->read( my $buffer, ( $length < 8192 ) ? $length : 8192 );

            $length -= length($buffer);

            

            $body->add($buffer);

        }

        

        my $uploads = $body->upload; # hashref

        my $params  = $body->param;  # hashref

        my $body    = $body->body;   # IO::Handle

    }


DESCRIPTION

HTTP::Body parses chunks of HTTP POST data and supports application/octet-stream, application/x-www-form-urlencoded, and multipart/form-data.

It is currently used by Catalyst to parse POST bodies.


METHODS

new
Constructor. Takes content type and content length as parameters, returns a the HTTP::Body manpage object.

add
Add string to internal buffer. Will call spin unless done. returns length before adding self.

body
accessor for the body.

buffer
read only accessor for the buffer.

content_length
read only accessor for content length

content_type
ready only accessor for the content type

init
return self.

length
read only accessor for body length.

spin
Abstract method to spin the io handle.

state
accessor for body state.

param
accesor for http parameters.

upload


BUGS

Chunked requests are currently not supported.


AUTHOR

Christian Hansen, ch@ngmedia.com

Sebastian Riedel, sri@cpan.org


LICENSE

This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy