WebReq
abstract class WebReq : Obj
WebReq encapsulates a web request.
See pod doc.
Base URI of the current WebMod
Get the WebMod which is currently responsible for processing this request
Map of HTTP request headers
The HTTP request method in uppercase
Get the stream to read request body
Get the session associated with this browser "connection"
Access to socket options for this request
Get the IP port of the client socket making this request
Return if the method is POST
The request URI including the query string relative to this authority
The HTTP version of the request
Map of cookie values keyed by cookie name
Return if the method is GET
Get the accepted locales for this request based on the "Accept-Language" HTTP header
Get the key/value pairs of the form data
Given a web request
The absolute request URI including the full authority and the query string
WebMod relative part of the URI - see modBase
Get the IP host address of the client socket making this request
Stash allows you to stash objects on the WebReq object in order to pass data b/w Weblets while processing this request
virtual Uri absUri()
The absolute request URI including the full authority and the query string. Also see uri, modBase, and modRel. 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 Str:Str cookies()
Map of cookie values keyed by cookie name. The cookies map is readonly and case insensitive.
virtual [Str:Str]? 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 Uri.decodeQuery. If the content type is not "application/x-www-form-urlencoded" this method returns null.
abstract Str:Str headers()
Map of HTTP request headers. The headers map is readonly and case insensitive (see Map.caseInsensitive).
Examples:
req.headers["Accept-Language"]
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.
abstract Bool isGet()
Return if the method is GET
abstract Bool isPost()
Return if the method is POST
virtual 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, and locales.last is worst. This list is guarenteed to contain Locale("en").
abstract Str method()
The HTTP request method in uppercase. Example: GET, POST, PUT.
abstract WebMod : mod
Get the WebMod which is currently responsible for processing this request.
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 in modRel 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`
Uri modRel()
WebMod relative part of the URI - see modBase.
Void parseMultiPartForm(|Str,InStream,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.
abstract IpAddr remoteAddr()
Get the IP host address of the client socket making this request.
abstract Int remotePort()
Get the IP port of the client socket making this request.
abstract WebSession session()
Get the session associated with this browser "connection". The session must be accessed the first time before the response is committed.
abstract SocketOptions socketOptions()
Access to socket options for this request.
virtual Str:Obj? stash()
Stash allows you to stash objects on the WebReq object in order to pass data b/w Weblets while processing this request.
abstract Uri uri()
The request URI including the query string relative to this authority. Also see absUri, modBase, and modRel.
Examples:
/a/b/c /a?q=bar
abstract Version version()
The HTTP version of the request.