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
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
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
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.