Cookies

NAME

HTTP::Cookies - HTTP cookie jars

SYNOPSIS

use HTTP::Cookies;
    my $cookies = HTTP::Cookies.new(
        :file<./cookies>,
        :autosave(1)
    );
    $cookies.load;

DESCRIPTION

This module provides a bunch of methods to manage HTTP cookies.

METHODS

method new

multi method new(*%params)

A constructor. Takes params like:

  • file : where to write cookies

  • autosave : save automatically after every operation on cookies or not

my $cookies = HTTP::Cookies.new(
        autosave => 1,
        :file<./cookies.here>
    );
method set-cookie(HTTP::Cookies:, Str $str)

Adds a cookie (passed as an argument $str of type Str) to the list of cookies.

my $cookies = HTTP::Cookies.new;
    $cookies.set-cookie('Set-Cookie: name1=value1; HttpOnly');

method save

method save(HTTP::Cookies:)

Saves cookies to the file ($.file).

my $cookies = HTTP::Cookies.new;
    $cookies.set-cookie('Set-Cookie: name1=value1; HttpOnly');
    $cookies.save;

method load

method load(HTTP::Cookies:)

Loads cookies from file ($.file).

my $cookies = HTTP::Cookies.new;
    $cookies.load;

method extract-cookies

method extract-cookies(HTTP::Cookies:, HTTP::Response $response)

Gets cookies ('Set-Cookie: ' lines) from the HTTP Response and adds it to the list of cookies.

my $cookies = HTTP::Cookies.new;
    my $response = HTTP::Response.new(Set-Cookie => "name1=value; Secure");
    $cookies.extract-cookies($response);
method add-cookie-header(HTTP::Cookies:, HTTP::Request $request)

Adds cookies fields ('Cookie: ' lines) to the HTTP Request.

my $cookies = HTTP::Cookies.new;
    my $request = HTTP::Request.new;
    $cookies.load;
    $cookies.add-cookie-header($request);

method clear-expired

method clear-expired(HTTP::Cookies:)

Removes expired cookies.

my $cookies = HTTP::Cookies.new;
    $cookies.set-cookie('Set-Cookie: name1=value1; Secure');
    $cookies.set-cookie('Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT');
    $cookies.clear-expired; # contains 'name1' cookie only

method clear

method clear(HTTP::Cookies:)

Removes all cookies.

my $cookies = HTTP::Cookies.new;
    $cookies.load; # contains something
    $cookies.clear; # will be empty after this action
method push-cookie(HTTP::Cookies:, HTTP::Cookie $c)

Pushes cookies (passed as an argument $c of type HTTP::Cookie) to the list of cookies.

my $c = HTTP::Cookie.new(:name<a>, :value<b>, :httponly);
    my $cookies = HTTP::Cookies.new;
    $cookies.push-cookie: $c;

method Str

method Str(HTTP::Cookies:)

Returns all cookies in human (and server) readable form.

SEE ALSO

HTTP::Request, HTTP::Response, HTTP::Cookie

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.