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 stringbah
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
thenbase
ishttp://localhost:3000/
. - $req->body
-
Returns the message body of the request, unless Content-Type is
application/x-www-form-urlencoded
ormultipart/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.
-
A convenient method to access $req->cookies.
$cookie = $c->request->cookie('name'); @cookies = $c->request->cookie;
-
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 valuesbar
,gorch
andquxx
. Previously this would have addedbar
as another value tofoo
(creating it if it didn't exist before), andquxx
as another value forgorch
. - $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
andbody_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.