Catalyst::Request - предоставляет информацию о текущем клиентском запросе
См
также Catalyst::Request::Upload.
Catalyst Request класс, который предоставляет
интерфейс к данным для текущего
клиентского запроса. Объект запроса
подготавливается Catalyst::Engine, таким образом
скрывая детали особой реализации движка.
МЕТОДЫ
$req->address
Возвращает
IP клиента.
$req->arguments
Возвращает
ссылку на массив с аргументами
print
$c->request->arguments->[0];
Для
примера, если ваше действие было:
package
MyApp::Controller::Foo;
sub
moose : Local {
...
}
и URI
запроса было "http://.../foo/moose/bah", строка
"bah" будет первым и единственным
аргументом.
Аргументы
получаются URI преобразованными для вас.
$req->args
Сокращенно
для "arguments".
$req->base
Содержит
URI основу.
Contains
the URI base. Всегда будет прицеплятся слешем.
Помни, что URI схема (наприм, http vs. https)
должна быть определена через эвристически;
зависит от конфигурации сервера, она
может быть неверна. См $req->secure для доп.
информации.
Если
ваше приложение было запрошено через
URI "http://localhost:3000/some/path" то "base"
есть "http://localhost:3000/".
$req->body
Возвращает
тело сообщения запроса, как возвращенный
HTTP::Body: строка, если не Content-Type определена
как "application/x-www-form-urlencoded",
"text/xml",
или "multipart/form-data", в этом случае
File::Temp объект вернет.
$req->body_parameters
Возвращает
ссылку на хеш содержащий POST параметры
тела. Значения могут быть либо скаляр
либо ссылка на массив, содержащий скаляр.
print
$c->request->body_parameters->{field};
print
$c->request->body_parameters->{field}->[0];
Это
параметры из POST части запроса, если это
имеет место.
$req->body_params
Сокр.
body_parameters.
$req->content_encoding
Сокр.
$req->headers->content_encoding.
$req->content_length
Сокр.
$req->headers->content_length.
$req->content_type
Сокр.
$req->headers->content_type.
$req->cookie
Удобный
метод для доступа к $req->cookies.
$cookie
= $c->request->cookie('name');
@cookies
= $c->request->cookie;
$req->cookies
Возвращает
ссылку на хеш содержащий, куки.
print
$c->request->cookies->{mycookie}->value;
Куки
в хеше индексированы по имени, и значения
есть CGI::Simple::Cookie объекты.
$req->header
Сокр.
$req->headers->header.
$req->headers
Возвращает
HTTP::Headers объект содержащий заголовки
для текущего запроса.
print
$c->request->headers->header('X-Catalyst');
$req->hostname
Возвращает
хостнейм клиента. Используйте
"$req->uri->host" чтобы получить
хостнейм сервера.
$req->input
Синоним
для $req->body.
$req->query_keywords
Содержит
порцию ключевых слов строки запроса,
когда нет присутствует знак "=".
http://localhost/path?some+keywords
$c->request->query_keywords
будет содержать 'some keywords'
$req->match
Это
содержит часть совпадений Regex действия.
Иначе возвратит то же самое как "action",
за исключением действий по умолчанию,
которые возвращают пустую строку.
$req->method
Содержит
метод ("GET", "POST", "HEAD",
etc).
$req->param
Возвращает
GET или POST параметры с CGI.pm совместимыми
методами параметров. Это альтернативный
метод для доступа параметров в
$c->req->parameters.
$value
= $c->request->param( 'foo' );
@values
= $c->request->param( 'foo' );
@params
= $c->request->param;
Как
CGI или различный в ранней версии Catalyst,
пересылка множественных аргументов в
этом метода, наподобии этого:
$c->request->param(
'foo', 'bar', 'gorch', 'quxx' );
установит
параметр "foo" в множественные
значения "bar", "gorch" и "quxx".
Ранее это нужно было добавить "bar"
как другое значение "foo" (создает
его если не существовал до этого), "quxx"
и другое значение для "gorch".
ПРИМЕЧАНИЕ:
это рассмотрели традиционный интерфейс
и следует быть внимательным, когда
используете его, "scalar $c->req->param(
'foo' )" возвратит только первый параметр.
"foo"
параметр даже в множественных
представлениях;
"$c->req->param(
'foo' )" возвратит список параметров,
которые могут неожиданно результат
когда пишется код формы;
$foo->bar(
a
=> 'b',
baz
=> $c->req->param( 'baz' ),
);
Если
множество "baz" параметров были
представлены этим кодом может разрушить
данные и стать причиной вызова ошибки
инициализации. Для более прямого
интерфейса
see
"$c->req->parameters".
$req->parameters
Возвращает
ссылку на хеш, содержащий GET и POST параметры.
Значения могут быть скаляр или ссылка
на массик скаляров.
print
$c->request->parameters->{field};
print
$c->request->parameters->{field}->[0];
Это
комбинация "query_parameters" и
"body_parameters".
$req->params
Сокр
$req->parameters.
$req->path
Возвратит
путь, т.е часть URI после $req->base, для
текущего запроса
http://localhost/path/foo
$c->request->path
будет содержать 'path/foo'
$req->path_info
Синоним
path, добавлен для совместимости с CGI.
$req->protocol
Возвращает
протокол (HTTP/1.0 or HTTP/1.1) используемый для
текущего запроса.
$req->query_parameters
$req->query_params
Возвращает
ссылку на хэш содержащий строку запроса
(GET) параметров. Значения могут быть
скаляр или ссылка на массив скаляров.
print
$c->request->query_parameters->{field};
print
$c->request->query_parameters->{field}->[0];
$req->read(
[$maxlength] )
Читает участок данных из тела запроса. Этот метод предназначен для использования пока ищется читается $maxlength байты при каждом вызове.
Читает участок данных из тела запроса. Этот метод предназначен для использования пока ищется читается $maxlength байты при каждом вызове.
$maxlength
размер запроса, если не установлен
иначе.
$req->read_chunk(\$buff,
$max)
Читает
участок...
Вам
нужно установит MyApp->config(parse_on_demand =>
1) чтобы использовать напрямую.
$req->referer
Сокр.
$req->headers->referer. Возвратит ссылку
реферал.
$req->secure
Возвратит
истина или ложь, показывающий используется
ли безопасное соединение(https). Помните
что URI схема (прим. http и https) должны быть
назначены эвристически, и поэтому
надежность $req->secure будет зависеть от
вашей конфигурации сервера. Если вы
защищаете надежные страницы по стандарту
SSL порт (443) и/или настройки HTTPS переменной
окружения, $req->secure следует быть
допустимой.
$req->captures
Возвращает
ссылку на массив, содержащий захваченные
аргументы из сцепленных действий или
рег.выражений.
my
@captures = @{ $c->request->captures };
$req->upload
Удобный
метод для доступа $req->uploads.
$upload
= $c->request->upload('field');
@uploads
= $c->request->upload('field');
@fields
= $c->request->upload;
for
my $upload ( $c->request->upload('field') ) {
print
$upload->filename;
}
$req->uploads
Возвращает
ссылку на хэш, содержащий аплоды. Значения
могут быть и Catalyst::Request::Upload объектt, или
ссылка на массиви Catalyst::Request::Upload объектов.
my
$upload = $c->request->uploads->{field};
my
$upload = $c->request->uploads->{field}->[0];
$req->uri
Возвращает
URI объект для текущего действия. Ссылаяс
на URI текст.
$req->mangle_params(
{ key => 'value' }, $appendmode);
Возвращает
ссылку на хеш морфологических параметров
из текущих параметров запроса, плюс
поданные параметры. Ключи для которых
нет текущего существует параметра будут
добавлены, ключи с неопределенными
значениями будут удалены и ключи с
существующими параметрами будут
заменены. Помни, что вы можете подать
истинное значение как конечный аргумент
для изменения поведения с заботой о
существующих параметров, добавление
значений предпочтительнее чем их замена.
Быстрый
пример:
# URI
запрос парамет foo=1
my
$hashref = $req->mangle_params({ foo => 2 });
#
Результат параметр запроса foo=2
сравните
с режимом добавления:
#
URI foo=1
my
$hashref = $req->mangle_params({ foo => 2 }, 1);
#
Result foo=1&foo=2
Этот
код после "uri_with".
$req->uri_with(
{ key => 'value' } );
Возвращает
переписанный URI объект для текущего
запроса. Ключ/значение пары проходят
перезаписывают существующие параметры.
Вы можете удалить существующий параметр
передав ему undef значение. Немодифицированные
параметры, будут зафиксированны.
Вы
можете также передать дополнительный
парамет который добавит "uri_with" в
режим добавления:
$req->uri_with(
{ key => 'value' }, { mode => 'append' } );
См
"mangle_params" для пояснения этого
поведения.
$req->remote_user
Возвращает
значение "REMOTE_USER" переменной
окружения.
$req->user_agent
Сокр.
$req->headers->user_agent. Возвращает строку
версии браузера.
МЕТОДЫ УСТАНОВКИ
Вам
никогда не следует вызывать эти методы
самому в коде приложении, хотя они
полезны если увеличивают Catalyst применяя
роль запроса.
$self->prepare_headers()
Устанавливает
"$res->headers" доступ.
$self->prepare_body()
Устанавливает
тело используя HTTP::Body
$self->prepare_body_chunk()
Добавляет
участок тело запроса.
$self->prepare_body_parameters()
Устанавливает
параметры из тела.
$self->prepare_cookies()
Разбирает
куки из заголовка. Устанавливает
CGI::Simple::Cookie объект.
$self->prepare_connection()
Устанавливает
различные поля в запросе такие как
локальные и удаленный адреса, метод
запроса, хостнейм и т.д.
$self->prepare_parameters()
Гарантирует,
что тело будет разпарсено, затем построит
параметры, которые комбинируются из
тех в запрос и те в тело.
Этот
метод - строитель для параметров атрибута.
meta
Предоставлен
Moose