Provided by: libmojolicious-perl_4.63+dfsg-1_all bug

NAME

       Mojo::Message::Request - HTTP request

SYNOPSIS

         use Mojo::Message::Request;

         # Parse
         my $req = Mojo::Message::Request->new;
         $req->parse("GET /foo HTTP/1.0\x0d\x0a");
         $req->parse("Content-Length: 12\x0d\x0a");
         $req->parse("Content-Type: text/plain\x0d\x0a\x0d\x0a");
         $req->parse('Hello World!');
         say $req->method;
         say $req->headers->content_type;
         say $req->body;

         # Build
         my $req = Mojo::Message::Request->new;
         $req->url->parse('http://127.0.0.1/foo/bar');
         $req->method('GET');
         say $req->to_string;

DESCRIPTION

       Mojo::Message::Request is a container for HTTP requests as described in RFC 2616 and RFC
       2817.

EVENTS

       Mojo::Message::Request inherits all events from Mojo::Message.

ATTRIBUTES

       Mojo::Message::Request inherits all attributes from Mojo::Message and implements the
       following new ones.

   env
         my $env = $req->env;
         $req    = $req->env({});

       Direct access to the "CGI" or "PSGI" environment hash if available.

         # Check CGI version
         my $version = $req->env->{GATEWAY_INTERFACE};

         # Check PSGI version
         my $version = $req->env->{'psgi.version'};

   method
         my $method = $req->method;
         $req       = $req->method('POST');

       HTTP request method, defaults to "GET".

   url
         my $url = $req->url;
         $req    = $req->url(Mojo::URL->new);

       HTTP request URL, defaults to a Mojo::URL object.

         # Get request information
         say $req->url->to_abs->userinfo;
         say $req->url->to_abs->host;
         say $req->url->to_abs->path;

METHODS

       Mojo::Message::Request inherits all methods from Mojo::Message and implements the
       following new ones.

   clone
         my $clone = $req->clone;

       Clone request if possible, otherwise return "undef".

   cookies
         my $cookies = $req->cookies;
         $req        = $req->cookies(Mojo::Cookie::Request->new);
         $req        = $req->cookies({name => 'foo', value => 'bar'});

       Access request cookies, usually Mojo::Cookie::Request objects.

   extract_start_line
         my $bool = $req->extract_start_line(\$str);

       Extract request line from string.

   fix_headers
         $req = $req->fix_headers;

       Make sure request has all required headers.

   get_start_line_chunk
         my $bytes = $req->get_start_line_chunk($offset);

       Get a chunk of request line data starting from a specific position.

   is_secure
         my $bool = $req->is_secure;

       Check if connection is secure.

   is_xhr
         my $bool = $req->is_xhr;

       Check "X-Requested-With" header for "XMLHttpRequest" value.

   param
         my @names = $req->param;
         my $foo   = $req->param('foo');
         my @foo   = $req->param('foo');

       Access GET and POST parameters. Note that this method caches all data, so it should not be
       called before the entire request body has been received. Parts of the request body need to
       be loaded into memory to parse POST parameters, so you have to make sure it is not
       excessively large.

   params
         my $params = $req->params;

       All GET and POST parameters, usually a Mojo::Parameters object. Note that this method
       caches all data, so it should not be called before the entire request body has been
       received. Parts of the request body need to be loaded into memory to parse POST
       parameters, so you have to make sure it is not excessively large.

         # Get parameter value
         say $req->params->param('foo');

   parse
         $req = $req->parse('GET /foo/bar HTTP/1.1');
         $req = $req->parse(REQUEST_METHOD => 'GET');
         $req = $req->parse({REQUEST_METHOD => 'GET'});

       Parse HTTP request chunks or environment hash.

   proxy
         my $proxy = $req->proxy;
         $req      = $req->proxy('http://foo:bar@127.0.0.1:3000');
         $req      = $req->proxy(Mojo::URL->new('http://127.0.0.1:3000'));

       Proxy URL for request.

         # Disable proxy
         $req->proxy(0);

   query_params
         my $params = $req->query_params;

       All GET parameters, usually a Mojo::Parameters object.

         # Turn GET parameters to hash and extract value
         say $req->query_params->to_hash->{foo};

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.