Mojo::Message::Response

簡介

use Mojo::Message::Response;

# Parse
my $res = Mojo::Message::Response->new;
$res->parse("HTTP/1.0 200 OK\x0d\x0a");
$res->parse("Content-Length: 12\x0d\x0a");
$res->parse("Content-Type: text/plain\x0d\x0a\x0d\x0a");
$res->parse('Hello World!');
say $res->code;
say $res->headers->content_type;
say $res->body;

# Build
my $res = Mojo::Message::Response->new;
$res->code(200);
$res->headers->content_type('text/plain');
$res->body('Hello World!');
say $res->to_string;

Mojo :: Message :: Response是基于RFC 7230和RFC 7231的 HTTP響應的容器。

事件

Mojo :: Message :: Response繼承Mojo :: Message中的所有事件。

屬性

code

my $code = $res->code;
$res     = $res->code(200);

HTTP響應狀態碼。

max_message_size

my $size = $res->max_message_size;
$res     = $res->max_message_size(1024);

HTTP響應的消息體最大尺寸(單位為字節)。默認為MOJO_MAX_MESSAGE_SIZE環境變量的值或2147483648(2GiB)。設置為0表示不限制消息體的大小。

message

my $msg = $res->message;
$res    = $res->message('OK');

HTTP響應的消息體。

方法

Mojo::Message::Response從Mojo::Message繼承了所有方法,并實現了以下方法。

cookies

my $cookies = $res->cookies;
$res        = $res->cookies(Mojo::Cookie::Response->new);
$res        = $res->cookies({name => 'foo', value => 'bar'});

獲取或添加響應的Cookie信息。通常返回的是Mojo::Cookie::Response對象。

# Names of all cookies
say $_->name for @{$res->cookies};

default_message

my $msg = $res->default_message;
my $msg = $res->default_message(418);

返回狀態碼的默認響應消息,默認使用code屬性。

extract_start_line

my $bool = $res->extract_start_line(\$str);

用一個字符串設計“響應”的起始行。

fix_headers

$res = $res->fix_headers;

確保HTTP響應消息具有所必須的頭部信息。

get_start_line_chunk

my $bytes = $res->get_start_line_chunk($offset);

從特定位置獲取消息的起始行數據塊。

is_client_error

my $bool = $res->is_client_error;

檢查此響應是否具有 4xx 狀態碼。

is_empty

my $bool = $res->is_empty;

檢查此響應是否具有 1xx、204 或 304 狀態嗎。

is_error

my $bool = $res->is_error;

檢查此響應是否具有 4xx 或 5xx 狀態碼。

is_info

my $bool = $res->is_info;

檢查此響應是否具有 1xx 狀態碼。

is_redirect

my $bool = $res->is_redirect;

檢查此響應是否具有 3xx 狀態碼。

is_server_error

my $bool = $res->is_server_error;

檢查此響應是否具有 5xx 狀態碼。

is_success

my $bool = $res->is_success;

檢查此響應是否具有 2xx 狀態碼。

start_line_size

my $size = $req->start_line_size;

狀態行的尺寸(以字節為單位)。需要注意的是:此方法的調用會結束請求。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容