Mojo::Message::Response - HTTPレスポンス
使い方
use Mojo::Message::Response; # 解析 my $res = Mojo::Message::Reponse->new; $res->parse("HTTP/1.0 200 OK\x0a\x0d"); $res->parse("Content-Length: 12\x0a\x0d\x0a\x0d"); $res->parse("Content-Type: text/plain\x0a\x0d\x0a\x0d"); $res->parse('Hello World!'); say $res->code; say $res->headers->content_type; say $res->body; # 構築 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);
メッセージの最大バイトサイズ。デフォルトは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'});
レスポンスのクッキーにアクセスします。通常はMojo::Cookie::Responseオブジェクトです。
# すべてのクッキーの名前 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_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;
ステータスラインのバイトサイズ。このメソッドは、レスポンスをファイナライズすることに注意してください。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年5月23日更新)