模块:莫霍::内容

名称

Mojo::Content-HTTP内容基类

简介

软件包Mojo::Content::MyContent;使用Mojo::Base“Mojo::Content”;子体_包含{…}子体_大小{…}子get_body_chunk{…}

描述

Mojo::内容是HTTP内容容器的抽象基类,基于副本请求7230副本请求7231,比如Mojo::Content::MultiPartMojo::内容::单个.

活动

Mojo::内容从继承所有事件Mojo::EventEmitter并且可以发射出以下新的气体。

身体

$content->on(body=>sub($content){…});

解析完所有标头并启动正文后发出。

$content->on(body=>sub($content)){$content->auto_upgrade(0)if$content->headers->header('X-No-MultiPart');});

排水

$content->on(drain=>sub($content,$offset){…});

写入所有数据后立即发出。

$content->on(drain=>sub($content){$content->write_chunk(时间);});

阅读

$content->on(读=>sub($content,$bytes){…});

当新的内容块到达时发出。

$content->on(读取=>sub($content,$bytes){说“流媒体:$bytes”;});

属性

Mojo::内容实现以下属性。

自动_压缩

my$bool=$content->auto_decompress;$content=$content->auto_decompress($bool);

如果出现以下情况,则自动解压缩内容“已压缩”是真的。

自动释放

我的$bool=$content->auto_relax;$content=$content->auto_relax($bool);

尝试检测何时需要轻松解析。

标题

我的$headers=$content->headers;$content=$content->headers(Mojo::headers->new);

内容标题,默认为Mojo::标题对象。

最大缓冲区大小

我的$size=$content->max_buffer_size;$content=$content->max_buffer_size(1024);

内容解析器缓冲区的最大字节数,默认为MOJO_MAX_BUFFER尺寸环境变量或262144(256KiB)。

最大左侧尺寸

我的$size=$content->max_leftover_size;$content=$content->max_leftover_size(1024);

流水线HTTP请求的最大缓冲区大小(字节),默认为MOJO_MAX_LEFTOVER_SIZE(MOJO_MAX_LEFTOVER_SIZE)环境变量或262144(256KiB)。

轻松的

我的$bool=$content->放松;$content=$content->放松($bool);

为连接关闭时终止的响应激活轻松解析。

跳过_正文

my$bool=$content->skip_body;$content=$content->skip_body($bool);

跳过正文分析并在标头之后完成。

方法

Mojo::内容从继承所有方法Mojo::EventEmitter并实现了以下新功能。

车身_容器

my$bool=$content->body_contains('foo bar baz');

检查内容是否包含特定字符串。意在在子类中重载。

车身_尺寸

my$size=$content->body_size;

内容大小(以字节为单位)。意思是在子类中重载。

边界

我的$boundary=$content->boundary;

从中提取多部分边界内容类型收割台。

字符集

我的$charset=$content->charset;

从中提取字符集内容类型收割台。

克隆

my$clone=$content->克隆;

返回新的Mojo::内容如果可能,从该内容克隆对象,否则返回未定义.

生成车身块

my$bytes=$content->generate_body_chunk(0);

生成动态内容。

获得最佳身材

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

从特定位置开始获取大块内容。意思是在子类中重载。

获得头像

my$bytes=$content->getheader_chunk(13);

从特定位置开始获取标题块。请注意,此方法将完成内容。

页眉_大小

my$size=$content->header_size;

标头的大小(以字节为单位)。请注意,此方法将完成内容。

页眉_容器

my$bool=$content->headers_contain('foo bar baz');

检查标头是否包含特定字符串。请注意,此方法将完成内容。

被阻塞(_C)

我的$bool=$content->is_chunked;

检查是否传输编码标头表示分块传输编码。

is_压缩

我的$bool=$content->is_compressed;

检查内容编码标题,用于gzip公司值。

is_dynamic(动态)

我的$bool=$content->is_dynamic;

检查内容是否将动态生成,这将防止“克隆”从工作中解脱出来。

已完成(_F)

我的$bool=$content->is_finished;

检查解析器是否完成。

超出了限制

我的$bool=$content->is_limit_exceeded;

检查是否超过缓冲区“最大缓冲区大小”.

is_多部分

我的$bool=$content->is_multipart;

错,这不是Mojo::Content::MultiPart对象。

是parsing_body

我的$bool=$content->is_parsing_body;

检查正文分析是否已开始。

剩菜

my$bytes=$content->剩余项;

从内容解析器获取剩余数据。

解析

$内容=$content->parse(“内容长度:12\x0d\x0a\x0d\x0aHello World!”);

分析内容块。

解析_正文

$content=$content->parse_body('Hi!');

分析正文块并跳过标题。

进步

我的$size=$content->progress;

已从消息接收的内容大小(字节)。

$content=$content->write;$content=$content->write(“”);$content=$content->write($bytes);$content=$content->write($bytes=>sub{…});

非阻塞写入动态内容,写入所有数据后将执行可选的drain回调。在没有数据块的情况下调用此方法将完成“标题”并允许稍后写入动态内容。您可以随时写入空数据块以结束流。

#继续之前,请确保已写入上一块数据$content->写('He'=>子($content){$content->write('llo!'=>sub($content){$content->write(“”);});});

写入区块

$content=$content->write_chunk;$content=$content->write_chunk(“”);$content=$content->write_chunk($bytes);$content=$content->write_chunk($bytes=>sub{…});

使用分块传输编码非阻塞地写入动态内容,写入所有数据后将执行可选的排出回调。在没有数据块的情况下调用此方法将完成“标题”并且允许稍后写入动态内容。您可以随时写入空数据块以结束流。

#继续之前,请确保已写入上一块数据$content->write_chunk('He'=>sub($content){$content->write_chunk('llo!'=>sub($content){$content->write_chunk(“”);});});

另请参阅

Mojolicious公司,Mojolicious::指南,https://mojolicious.org.