Catalyst::Request - provides information about the current client request |
Catalyst::Request - provides information about the current client request
$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->query_keywords; $req->match; $req->method; $req->param; $req->parameters; $req->params; $req->path; $req->protocol; $req->query_parameters; $req->read; $req->referer; $req->secure; $req->captures; # previously knows as snippets $req->upload; $req->uploads; $req->uri; $req->user; $req->user_agent;
See also Catalyst, the Catalyst::Request::Upload manpage.
This is the Catalyst Request class, which provides an interface to data for the current client request. The request object is prepared by the Catalyst::Engine manpage, thus hiding the details of the particular engine implementation.
[DEPRECATED] Returns the name of the requested action.
Use $c->action
instead (which returns a
Catalyst::Action object).
Returns the IP address of the client.
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.
Shortcut for arguments.
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/
.
Returns the message body of the request, unless Content-Type is
application/x-www-form-urlencoded
or multipart/form-data
.
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.
=head2 $req->body_params
Shortcut for body_parameters.
Shortcut for $req->headers->content_encoding.
Shortcut for $req->headers->content_length.
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 the CGI::Cookie manpage objects.
Shortcut for $req->headers->header.
Returns an the HTTP::Headers manpage object containing the headers for the current request.
print $c->request->headers->header('X-Catalyst');
Returns the hostname of the client.
=cut
sub hostname { my $self = shift;
if ( @_ == 0 && not $self->{hostname} ) { $self->{hostname} = gethostbyaddr( inet_aton( $self->address ), AF_INET ); }
if ( @_ == 1 ) { $self->{hostname} = shift; }
return $self->{hostname}; }
Alias for $req->body.
Contains the keywords portion of a query string, when no '=' signs are present.
http://localhost/path?some+keywords $c->request->query_keywords will contain 'some keywords'
This contains the matching part of a Regex action. Otherwise it returns the same as 'action', except for default actions, which return an empty string.
Contains the request method (GET
, POST
, HEAD
, etc).
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 the CGI manpage, 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
.
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
.
Shortcut for $req->parameters.
Returns the path, i.e. the part of the URI after $req->base, for the current request.
Alias for path, added for compability with the CGI manpage.
Returns the protocol (HTTP/1.0 or HTTP/1.1) used for the current request.
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]; =head2 $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.
Shortcut for $req->headers->referer. Returns the referring page.
Returns true or false, indicating whether the connection is secure (https).
Returns a reference to an array containing regex captures.
my @captures = @{ $c->request->captures };
captures
used to be called snippets. This is still available for backwoards
compatibility, but is considered deprecated.
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; }
Returns a reference to a hash containing uploads. Values can be either a the Catalyst::Request::Upload manpage object, or an arrayref of the Catalyst::Request::Upload manpage objects.
my $upload = $c->request->uploads->{field}; my $upload = $c->request->uploads->{field}->[0];
Returns a URI object for the current request. Stringifies to the URI text.
Returns a rewritten URI object for the current request. Key/value pairs passed in will override existing parameters. Unmodified pairs will be preserved.
Returns the currently logged in user. Deprecated. The method recommended for newer plugins is $c->user.
Shortcut to $req->headers->user_agent. Returns the user agent (browser) version string.
Sebastian Riedel, sri@cpan.org
Marcus Ramberg, mramberg@cpan.org
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
Catalyst::Request - provides information about the current client request |