NAME
Prancer::Response
SYNOPSIS
sub handle {
...
context->header(set => "Content-Type", value => "text/plain");
context->body("hello, goodbye");
context->finalize(Prancer::Const::OK);
}
# or using a callback
sub handle {
...
context->header(set => "Content-Type", value => "text/plain");
context->body(sub {
my $writer = shift;
$writer->write("What's up?");
$writer->close();
});
context->finalize(Prancer::Const::OK);
}
ATTRIBUTES
- header
-
If called with no arguments this will return the names of all headers that have been set to be sent with the response. Otherwise, this method expects a list of headers to add to the response. For example:
context->response->header("Content-Type" => "text/plain"); context->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 cookes 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 things such as
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");
The body may also 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 or after a callback is set will also be ignored. For example:
$response->body(sub { my $writer = shift; $writer->write("Hello, world!"); $writer->close(); });
- finalize
-
This requires one argument: the HTTP status code of the response. It will then send a PSGI compatible result. For example:
# send a 200 response $response->finalize(Prancer::Const::OK); # or hard code it $response->finalize(405);