NAME
Catalyst::Request - provides information about the current client request
SYNOPSIS
$req = $c->request;
$req->action;
$req->address;
$req->arguments;
$req->args;
$req->base;
$req->body;
$req->body_parameters;
$req->content_encoding;
$req->content_length;
$req->content_type;
$req->cookie;
$req->cookies;
$req->header;
$req->headers;
$req->hostname;
$req->input;
$req->match;
$req->method;
$req->param;
$req->parameters;
$req->params;
$req->path;
$req->protocol;
$req->query_parameters;
$req->read;
$req->referer;
$req->secure;
$req->snippets;
$req->upload;
$req->uploads;
$req->uri;
$req->user;
$req->user_agent;
See also Catalyst.
DESCRIPTION
This is the Catalyst Request class, which provides an interface to data for the current client request. The request object is prepared by Catalyst::Engine, thus hiding the details of the particular engine implementation.
METHODS
$req->action
Returns the requested action as a Catalyst::Action object.
$req->address
Returns the IP address of the client.
$req->arguments
Returns a reference to an array containing the arguments.
print $c->request->arguments->[0];
For example, if your action was
package MyApp::C::Foo;
sub moose : Local {
...
}
and the URI for the request was http://.../foo/moose/bah
, the string bah
would be the first and only argument.
$req->args
Shortcut for arguments.
$req->base
Contains the URI base. This will always have a trailing slash.
If your application was queried with the URI http://localhost:3000/some/path
then base
is http://localhost:3000/
.
$req->body
Returns the message body of the request, unless Content-Type is application/x-www-form-urlencoded
or multipart/form-data
.
$req->body_parameters
Returns a reference to a hash containing body (POST) parameters. Values can be either a scalar or an arrayref containing scalars.
print $c->request->body_parameters->{field};
print $c->request->body_parameters->{field}->[0];
These are the parameters from the POST part of the request, if any.
$req->body_params
Shortcut for body_parameters.
$req->content_encoding
Shortcut for $req->headers->content_encoding.
$req->content_length
Shortcut for $req->headers->content_length.
$req->content_type
Shortcut for $req->headers->content_type.
$req->cookie
A convenient method to access $req->cookies.
$cookie = $c->request->cookie('name');
@cookies = $c->request->cookie;
$req->cookies
Returns a reference to a hash containing the cookies.
print $c->request->cookies->{mycookie}->value;
The cookies in the hash are indexed by name, and the values are CGI::Cookie objects.
$req->header
Shortcut for $req->headers->header.
$req->headers
Returns an HTTP::Headers object containing the headers for the current request.
print $c->request->headers->header('X-Catalyst');
$req->hostname
Returns the hostname of the client.
$req->input
Alias for $req->body.
$req->match
This contains the matching part of a Regex action. Otherwise it returns the same as 'action'.
$req->method
Contains the request method (GET
, POST
, HEAD
, etc).
$req->param
Returns GET and POST parameters with a CGI.pm-compatible param method. This is an alternative method for accessing parameters in $c->req->parameters.
$value = $c->request->param( 'foo' );
@values = $c->request->param( 'foo' );
@params = $c->request->param;
Like CGI, and unlike earlier versions of Catalyst, passing multiple arguments to this method, like this:
$c->request->param( 'foo', 'bar', 'gorch', 'quxx' );
will set the parameter foo
to the multiple values bar
, gorch
and quxx
. Previously this would have added bar
as another value to foo
(creating it if it didn't exist before), and quxx
as another value for gorch
.
$req->parameters
Returns a reference to a hash containing GET and POST parameters. Values can be either a scalar or an arrayref containing scalars.
print $c->request->parameters->{field};
print $c->request->parameters->{field}->[0];
This is the combination of query_parameters
and body_parameters
.
$req->params
Shortcut for $req->parameters.
$req->path
Returns the path, i.e. the part of the URI after $req->base, for the current request.
$req->path_info
Alias for path, added for compability with CGI.
$req->protocol
Returns the protocol (HTTP/1.0 or HTTP/1.1) used for the current request.
$req->query_parameters
Returns a reference to a hash containing query string (GET) parameters. Values can be either a scalar or an arrayref containing scalars.
print $c->request->query_parameters->{field};
print $c->request->query_parameters->{field}->[0];
$req->read( [$maxlength] )
Reads a chunk of data from the request body. This method is intended to be used in a while loop, reading $maxlength bytes on every call. $maxlength defaults to the size of the request if not specified.
You have to set MyApp->config->{parse_on_demand} to use this directly.
$req->referer
Shortcut for $req->headers->referer. Returns the referring page.
$req->secure
Returns true or false, indicating whether the connection is secure (https).
$req->snippets
Returns a reference to an array containing regex snippets.
my @snippets = @{ $c->request->snippets };
$req->upload
A convenient method to access $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
Returns a reference to a hash containing uploads. Values can be either a hashref or a arrayref containing Catalyst::Request::Upload objects.
my $upload = $c->request->uploads->{field};
my $upload = $c->request->uploads->{field}->[0];
$req->uri
Returns a URI object for the current request. Stringifies to the URI text.
$req->user
Returns the currently logged in user. Deprecated. The method recommended for newer plugins is $c->user.
$req->user_agent
Shortcut to $req->headers->user_agent. Returns the user agent (browser) version string.
AUTHORS
Sebastian Riedel, sri@cpan.org
Marcus Ramberg, mramberg@cpan.org
COPYRIGHT
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.