NAME
Prancer::Response
SYNOPSIS
sub
handler {
my
(
$self
,
$env
,
$request
,
$response
,
$session
) =
@_
;
...
sub
(GET) {
$response
->header(
"Content-Type"
=>
"text/plain"
);
$response
->body(
"hello, goodbye"
);
return
$response
->finalize(200);
}
}
# or using a callback
sub
handler {
...
sub
(GET) {
$response
->header(
"Content-Type"
=>
"text/plain"
);
$response
->body(
sub
{
my
$writer
=
shift
;
$writer
->
write
(
"What is up?"
);
$writer
->
close
();
});
return
$response
->finalize(200);
}
}
METHODS
- header
-
This method expects a list of headers to add to the response. For example:
$response
->header(
"Content-Type"
=>
"text/plain"
);
$response
->header(
"Content-Length"
=> 1234,
"X-Foo"
=>
"bar"
);
If the header has already been set this will add another value to it and the response will include the same header multiple times. To replace a header that has already been set, remove the existing value first:
$response
->headers->remove(
"X-Foo"
);
- headers
-
Returns a Hash::MultiValue of all headers that have been set to be sent with the response.
-
If called with no arguments this will return the names of all cookies that have been set to be sent with the response. Otherwise, this method expects a list of cookies to add to the response. For example:
$response
->cookie(
"foo"
=> {
'value'
=>
"test"
,
'path'
=>
"/"
,
'domain'
=>
".example.com"
,
'expires'
=>
time
+ 24 * 60 * 60,
});
The hashref may contain the keys
value
,domain
,expires
,path
,httponly
, andsecure
.expires
can take a string or an integer (as an epoch time) and does not convert string formats like+3M
. -
Returns a Hash::MultiValue of all cookies that have been set to be sent with the response.
- body
-
Send buffered output to the client. Anything sent to the client with this method will be buffered until
finalize
is called. For example:$response
->body(
"hello"
);
$response
->body(
"goodbye"
,
"world"
);
If a buffered response is not desired then the body may be a callback to send a streaming response to the client. Any headers or response codes set in the callback will be ignored as they must all be set beforehand. Any body set before a callback is set will also be ignored. For example:
$response
->body(
sub
{
my
$writer
=
shift
;
$writer
->
write
(
"Hello, world!"
);
$writer
->
close
();
return
;
});
- finalize
-
This requires one argument: the HTTP status code of the response. It will then send a PSGI compatible response to the client. For example:
# or hard code it
$response
->finalize(200);