NAME
Mojo::Content - HTTP 1.1 Content Base Class
SYNOPSIS
use base 'Mojo::Content';
DESCRIPTION
Mojo::Content is an abstract base class for HTTP 1.1 content as described in RFC 2616.
ATTRIBUTES
Mojo::Content implements the following attributes.
auto_relax
my $relax = $content->auto_relax;
$content = $content->auto_relax(1);
Try to detect broken web servers and turn on relaxed parsing automatically.
headers
my $headers = $content->headers;
$content = $content->headers(Mojo::Headers->new);
The headers.
on_read
my $cb = $content->on_read;
$content = $content->on_read(sub {...});
Content parser callback.
$content = $content->on_read(sub {
my ($self, $chunk) = @_;
print $chunk;
});
Note that this attribute is EXPERIMENTAL and might change without warning!
relaxed
my $relaxed = $content->relaxed;
$content = $content->relaxed(1);
Activate relaxed parsing for HTTP 0.9 and broken web servers.
METHODS
Mojo::Content inherits all methods from Mojo::Base and implements the following new ones.
body_contains
my $found = $content->body_contains('foo bar baz');
Check if content contains a specific string.
body_size
my $size = $content->body_size;
Content size in bytes.
build_body
my $string = $content->build_body;
Render whole body.
build_headers
my $string = $content->build_headers;
Render all headers.
generate_body_chunk
my $chunk = $content->generate_body_chunk(0);
Generate dynamic content.
get_body_chunk
my $chunk = $content->get_body_chunk(0);
Get a chunk of content starting from a specfic position.
get_header_chunk
my $chunk = $content->get_header_chunk(13);
Get a chunk of the headers starting from a specfic position.
has_leftovers
my $leftovers = $content->has_leftovers;
Check if there are leftovers.
header_size
my $size = $content->header_size;
Size of headers in bytes.
is_chunked
my $chunked = $content->is_chunked;
Chunked transfer encoding.
is_done
my $done = $content->is_done;
Check if parser is done.
is_multipart
my $multipart = $content->is_multipart;
Multipart content.
is_parsing_body
my $body = $content->is_parsing_body;
Check if body parsing started yet.
leftovers
my $bytes = $content->leftovers;
Leftovers for next HTTP message.
parse
$content = $content->parse("Content-Length: 12\r\n\r\nHello World!");
Parse content.
parse_body
$content = $content->parse_body("Hi!");
Parse body.
parse_body_once
$content = $content->parse_body_once("Hi!");
Parse body once.
parse_until_body
$content = $content->parse_until_body(
"Content-Length: 12\r\n\r\nHello World!"
);
Parse and stop after headers.
progress
my $bytes = $content->progress;
Number of bytes already received from message content. Note that this method is EXPERIMENTAL and might change without warning!
write
$content->write('Hello!');
$content->write('Hello!', sub {...});
Write dynamic content, the optional drain callback will be invoked once all data has been written. Note that this method is EXPERIMENTAL and might change without warning!
write_chunk
$content->write_chunk('Hello!');
$content->write_chunk('Hello!', sub {...});
Write chunked content, the optional drain callback will be invoked once all data has been written. Note that this method is EXPERIMENTAL and might change without warning!
SEE ALSO
Mojolicious, Mojolicious::Guides, http://mojolicious.org.