Marcus Ramberg > HTTP-Body-1.07 > HTTP::Body

Download:
HTTP-Body-1.07.tar.gz

Dependencies

Annotate this POD

Related Modules

File::Temp
Data::Dumper
Data::URIEncode
Compress::Zlib
Digest::MD5
Test::Pod
more...
By perlmonks.org

CPAN RT

New  5
Open  3
View/Report Bugs
Module Version: 1.07   Source   Latest Release: HTTP-Body-1.19

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.

Chunked bodies are supported by not passing a length value to new().

It is currently used by Catalyst to parse POST bodies.

NOTES ^

When parsing multipart bodies, temporary files are created to store any uploaded files. You must delete these temporary files yourself after processing them, or set $body->cleanup(1) to automatically delete them at DESTROY-time.

METHODS ^

new

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

add

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

body

accessor for the body.

chunked

Returns 1 if the request is chunked.

cleanup

Set to 1 to enable automatic deletion of temporary files at DESTROY-time.

content_length

Returns the content-length for the body data if known. Returns -1 if the request is chunked.

content_type

Returns the content-type of the body data.

init

return self.

length

Returns the total length of data we expect to read if known. In the case of a chunked request, returns the amount of data read so far.

trailing_headers

If a chunked request body had trailing headers, trailing_headers will return an HTTP::Headers object populated with those headers.

spin

Abstract method to spin the io handle.

state

Returns the current state of the parser.

param

Get/set body parameters.

upload

Get/set file uploads.

tmpdir

Specify a different path for temporary files. Defaults to the system temporary path.

AUTHOR ^

Christian Hansen, chansen@cpan.org

Sebastian Riedel, sri@cpan.org

Andy Grundman, andy@hybridized.org

LICENSE ^

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

syntax highlighting: