Plack::Response(3p)

NAME
Plack::Response - Portable HTTP Response object for PSGI response

SYNOPSIS
  use Plack::Response;

  sub psgi_handler {
      my $env = shift;

      my $res = Plack::Response->new(200);
      $res->content_type('text/html');
      $res->body("Hello World");

      return $res->finalize;
  }

DESCRIPTION
Plack::Response allows you a way to create PSGI response array ref through a simple API.

METHODS

new
      $res = Plack::Response->new;
      $res = Plack::Response->new($status);
      $res = Plack::Response->new($status, $headers);
      $res = Plack::Response->new($status, $headers, $body);

    Creates a new Plack::Response object.

status
      $res->status(200);
      $status = $res->status;

    Sets and gets HTTP status code. "code" is an alias.

headers
      $headers = $res->headers;
      $res->headers([ 'Content-Type' => 'text/html' ]);
      $res->headers({ 'Content-Type' => 'text/html' });
      $res->headers( HTTP::Headers->new );

    Sets and gets HTTP headers of the response. Setter can take either an array ref, a hash ref or HTTP::Headers object containing a list of headers.

body
      $res->body($body_str);
      $res->body([ "Hello", "World" ]);
      $res->body($io);

    Gets and sets HTTP response body. Setter can take either a string, an array ref, or an IO::Handle-like object. "content" is an alias.

    Note that this method doesn't automatically set Content-Length for the response. You have to set it manually if you want, with the "content_length" method (see below).

header
      $res->header('X-Foo' => 'bar');
      my $val = $res->header('X-Foo');

    Shortcut for "$res->headers->header".

content_type, content_length, content_encoding
      $res->content_type('text/plain');
      $res->content_length(123);
      $res->content_encoding('gzip');

    Shortcut for the equivalent get/set methods in "$res->headers".

redirect
      $res->redirect($url);
      $res->redirect($url, 301);

    Sets redirect URL with an optional status code, which defaults to 302.

location
    Gets and sets "Location" header.

cookies
      $res->cookies->{foo} = 123;
      $res->cookies->{foo} = { value => '123' };

    Returns a hash reference containing cookies to be set in the response. The keys of the hash are the cookies' names, and their corresponding values are a plain string (for "value" with everything else defaults) or a hash reference that can contain keys such as "value", "domain", "expires", "path", "httponly", "secure".

    "expires" can take a string or an integer (as an epoch time) and does not convert string formats such as "+3M".

      $res->cookies->{foo} = {
          value => 'test',
          path  => "/",
          domain => '.example.com',
          expires => time + 24 * 60 * 60,
      };

finalize
      $res->finalize;

    Returns the status code, headers, and body of this response as a PSGI response array reference.

AUTHOR
Tokuhiro Matsuno

Tatsuhiko Miyagawa

SEE ALSO
Plack::Request