manpagez: man pages & more
man Mojo::Message::Request(3)
Home | html | info | man
Mojo::Message::Request(3)



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(3), Mojolicious::Guides(3), <https://mojolicious.org>.



perl v5.32.1                      2021-12-08         Mojo::Message::Request(3)

mojolicious 9.260.0 - Generated Thu Jun 2 16:34:33 CDT 2022
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.