abstract class web::WebReq
sys::Obj web::WebReq
WebReq encapsulates a web request.
See pod doc.
- absUri
-
virtual Uri absUri()
The absolute request URI including the full authority and the query string. Also see
uri
,modBase
, andmodRel
. This method is equivalent to:"http://" + headers["Host"] + uri
Examples:
http://www.foo.com/a/b/c http://www.foo.com/a?q=bar
-
virtual Map<Str,Str> cookies()
Map of cookie values keyed by cookie name. The cookies map is readonly and case insensitive.
- form
-
Get the key/value pairs of the form data. If the request content type is "application/x-www-form-urlencoded", then the first time this method is called the request content is read and parsed using sys::Uri.decodeQuery. If the content type is not "application/x-www-form-urlencoded" this method returns null.
- headers
-
abstract Map<Str,Str> headers()
Map of HTTP request headers. The headers map is readonly and case insensitive (see sys::Map.caseInsensitive).
Examples:
req.headers["Accept-Language"]
- in
-
abstract InStream in()
Get the stream to read request body. See
WebUtil.makeContentInStream
to check under which conditions request content is available. If request content is not available, then throw an exception.If the client specified the "Expect: 100-continue" header, then the first access of the request input stream will automatically send the client a 100 Continue response.
- isGet
-
abstract Bool isGet()
Return if the method is GET
- isPost
-
abstract Bool isPost()
Return if the method is POST
- locales
-
virtual List<Locale> locales()
Get the accepted locales for this request based on the "Accept-Language" HTTP header. List is sorted by preference, where
locales.first
is best, andlocales.last
is worst. This list is guarenteed to contain Locale("en"). - method
-
abstract Str method()
The HTTP request method in uppercase. Example: GET, POST, PUT.
- mod
-
abstract WebMod mod
Get the WebMod which is currently responsible for processing this request.
- modBase
-
Uri modBase := `/`
Base URI of the current WebMod. This Uri always ends in a slash. This is the URI used to route to the WebMod itself. The remainder of
uri
is stored inmodRel
so that the following always holds true (with exception of a trailing slash):modBase + modRel == uri
For example if the current WebMod is mounted as
/mod
then:uri modBase modRel ---------- ------- ------- `/mod` `/mod/` `` `/mod/` `/mod/` `` `/mod?q` `/mod/` `?q` `/mod/a` `/mod/` `a` `/mod/a/b` `/mod/` `a/b`
- modRel
-
Uri modRel()
WebMod relative part of the URI - see
modBase
. - parseMultiPartForm
-
Void parseMultiPartForm(Func<Void,Str,InStream,Map<Str,Str>> cb)
Given a web request:
- check that the content-type is form-data
- get the boundary string
- invoke callback for each part (see
WebUtil.parseMultiPart
)
For each part in the stream call the given callback function with the part's form name, headers, and an input stream used to read the part's body.
- remoteAddr
-
abstract IpAddr remoteAddr()
Get the IP host address of the client socket making this request.
- remotePort
-
abstract Int remotePort()
Get the IP port of the client socket making this request.
- session
-
abstract WebSession session()
Get the session associated with this browser "connection". The session must be accessed the first time before the response is committed.
- socketOptions
-
abstract SocketOptions socketOptions()
Access to socket options for this request.
- stash
-
Stash allows you to stash objects on the WebReq object in order to pass data b/w Weblets while processing this request.
- uri
-
abstract Uri uri()
The request URI including the query string relative to this authority. Also see
absUri
,modBase
, andmodRel
.Examples:
/a/b/c /a?q=bar
- version
-
abstract Version version()
The HTTP version of the request.