TABLE OF CONTENTS

NAME

Mojo::Content::Single - HTTP 内容

SYNOPSIS

use Mojo::Content::Single;

my $single = Mojo::Content::Single->new;
$single->parse("Content-Length: 12\x0d\x0a\x0d\x0aHello World!");
say $single->headers->content_length;

DESCRIPTION

Mojo::Content::Single 是一个 RFC2616 中描述的 HTTP 内容的一个容器

EVENTS

Mojo::Content::Single 继承所有 Mojo::Content 的事件并有以下新的一些功能.

upgrade

$single->on(upgrade => sub {
  my ($single, $multi) = @_;
  ...
});

给内容升级成为 Mojo::Content::MultiPart 的对象.

$single->on(upgrade => sub {
  my ($single, $multi) = @_;
  return unless $multi->headers->content_type =~ /multipart\/([^;]+)/i;
  say "Multipart: $1";
});

ATTRIBUTES

Mojo::Content::Single 继承所有 Mojo::Content 的属性并有以下新的一些.

asset

my $asset = $single->asset;
$single   = $single->asset(Mojo::Asset::Memory->new);

实际的内容,如果 auto_upgrade 是打开的话默认是 Mojo::Asset::Memory 对象。

auto_upgrade

my $upgrade = $single->auto_upgrade;
$single     = $single->auto_upgrade(0);

尝试给发现的多段内容自动升级成 Mojo::Content::MultiPart 的对象,默认为 1.

METHODS

Mojo::Content::Single 继承所有 Mojo::Content 的方法并实现了下列的。

new

my $single = Mojo::Content::Single->new;

构造一个新的 Mojo::Content::Single 的对象,并且给 read 的事件订阅指到默认的内容解析上面.

body_contains

my $success = $single->body_contains('1234567');

检查内容是否包含特定字符串。

body_size

my $size = $single->body_size;

内容大小(以字节为单位).

clone

my $clone = $single->clone;

如果有内容,就克隆内容,没有就返回 undef.

get_body_chunk

my $bytes = $single->get_body_chunk(0);

从指定的位置开始取得 chunk 的内容.

parse

$single = $single->parse("Content-Length: 12\x0d\x0a\x0d\x0aHello World!");
my $multi
  = $single->parse("Content-Type: multipart/form-data\x0d\x0a\x0d\x0a");

解析内容块,如果可能的话,升级到 Mojo::Content::MultiPart 的对象.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.