type

WebRes

src abstract class WebRes : Obj

WebRes encapsulates a response to a web request.

See pod doc

fields

statusCode

Get or set the HTTP status code for this response.

statusMsg

Map of HTTP status codes to status messages.

statusPhrase

Reason phrase to include in HTTP response line.

methods

cookies

Get the list of cookies to set via header fields.

done

Done is called to indicate that that response is complete to terminate pipeline processing.

headers

Map of HTTP response headers.

isCommitted

Return true if this response has been commmited.

isDone

Return if this response is complete - see done.

out

Return the WebOutStream for this response.

redirect

Send a redirect response to the client using the specified status code and url.

removeCookie

Remove a cookie for this response.

sendErr

Send an error response to client using the specified status and HTML formatted message.

Slot Details

cookies

src abstract Cookie[] cookies()

Get the list of cookies to set via header fields. Add a a Cookie to this list to set a cookie. Throw an err if response is already committed.

Example:

res.cookies.add(Cookie("foo", "123"))
res.cookies.add(Cookie("persistent", "some val") { maxAge = 3day })

done

src abstract Void done()

Done is called to indicate that that response is complete to terminate pipeline processing.

headers

src abstract Str:Str headers()

Map of HTTP response headers. You must set all headers before you access out() for the first time, which commits the response. Throw an err if response is already committed.

isCommitted

src abstract Bool isCommitted()

Return true if this response has been commmited. A committed response has written its response headers, and can no longer modify its status code or headers. A response is committed the first time that out is called.

isDone

src abstract Bool isDone()

Return if this response is complete - see done.

out

src abstract WebOutStream out()

Return the WebOutStream for this response. The first time this method is accessed the response is committed: all headers currently set will be written to the stream, and can no longer be modified. If the "Content-Length" header defines a fixed number of bytes, then attemps to write too many bytes will throw an IOErr. If "Content-Length" is not defined, then a chunked transfer encoding is automatically used.

redirect

src abstract Void redirect(Uri uri, Int statusCode := 303)

Send a redirect response to the client using the specified status code and url. If this response has already been committed this method throws an Err. This method implicitly calls done.

removeCookie

src Void removeCookie(Str name)

Remove a cookie for this response. This method is a convenience for:

res.cookies.add(Cookie(name, "") { maxAge=0day }

sendErr

src abstract Void sendErr(Int statusCode, Str? msg := null)

Send an error response to client using the specified status and HTML formatted message. If this response has already been committed this method throws an Err. This method implicitly calls done.

statusCode

src abstract Int statusCode

Get or set the HTTP status code for this response. Status code defaults to 200. Throw an err if the response has already been committed.

statusMsg

src const static Int:Str statusMsg := ...

Map of HTTP status codes to status messages.

statusPhrase

src abstract Str? statusPhrase

Reason phrase to include in HTTP response line. If null, then a status phrase is used based on the statusCode.