Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mojo::Message::RequestUser Contributed Perl DocumentaMojo::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 <http://tools.ietf.org/html/rfc7230>, RFC 7231
       <http://tools.ietf.org/html/rfc7231>, RFC 7235
       <http://tools.ietf.org/html/rfc7235> and	RFC 2817
       <http://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.

   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.32.0			  2020-06-19	     Mojo::Message::Request(3)

NAME | SYNOPSIS | DESCRIPTION | EVENTS | ATTRIBUTES | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mojo::Message::Request&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help