dwww Home | Manual pages | Find package

Mojo::Message::RequestUser)Contributed Perl DocumenMojo::Message::Request(3pm)

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, based on RFC
       7230 <https://tools.ietf.org/html/rfc7230>, RFC 7231
       <https://tools.ietf.org/html/rfc7231>, RFC 7235
       <https://tools.ietf.org/html/rfc7235> and RFC 2817
       <https://tools.ietf.org/html/rfc2817>.

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({PATH_INFO => '/'});

       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".

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

       Proxy URL for request.

   reverse_proxy
         my $bool = $req->reverse_proxy;
         $req     = $req->reverse_proxy($bool);

       Request has been performed through a reverse proxy.

   trusted_proxies
         my $proxies = $req->trusted_proxies;
         $req        = $req->trusted_proxies(['10.0.0.0/8', '127.0.0.1', '172.16.0.0/12', '192.168.0.0/16', 'fc00::/7']);

       Trusted reverse proxies, addresses or networks in CIDR form.

   request_id
         my $id = $req->request_id;
         $req   = $req->request_id('aee7d5d8');

       Request ID, defaults to a reasonably unique value.

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

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

         # Get request information
         my $info = $req->url->to_abs->userinfo;
         my $host = $req->url->to_abs->host;
         my $path = $req->url->to_abs->path;

   via_proxy
         my $bool = $req->via_proxy;
         $req     = $req->via_proxy($bool);

       Request can be performed through a proxy server.

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

   clone
         my $clone = $req->clone;

       Return a new Mojo::Message::Request object cloned from this 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.

         # Names of all cookies
         say $_->name for @{$req->cookies};

   every_param
         my $values = $req->every_param('foo');

       Similar to "param", but returns all values sharing the same name as an
       array reference.

         # Get first value
         say $req->every_param('foo')->[0];

   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.
       Note that this method finalizes the request.

   is_handshake
         my $bool = $req->is_handshake;

       Check "Upgrade" header for "websocket" value.

   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 $value = $req->param('foo');

       Access "GET" and "POST" parameters extracted from the query string and
       "application/x-www-form-urlencoded" or "multipart/form-data" message
       body. If there are multiple values sharing the same name, and you want
       to access more than just the last one, you can use "every_param". 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. There's a 16MiB limit for
       requests by default.

   params
         my $params = $req->params;

       All "GET" and "POST" parameters extracted from the query string and
       "application/x-www-form-urlencoded" or "multipart/form-data" message
       body, 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. There's a 16MiB limit for requests by default.

         # Get parameter names and values
         my $hash = $req->params->to_hash;

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

       Parse HTTP request chunks or environment hash.

   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};

   start_line_size
         my $size = $req->start_line_size;

       Size of the request-line in bytes. Note that this method finalizes the
       request.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.

perl v5.36.0                      2022-12-22       Mojo::Message::Request(3pm)

Generated by dwww version 1.15 on Tue Jun 25 09:11:04 CEST 2024.