名前

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 7230RFC 7231 に基づいた HTTPのレスポンスのためのコンテナです。

属性

Mojo::Message::ResponseMojo::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::ResponseMojo::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日更新)

関連情報