Header
NAME
HTTP::Header - class encapsulating HTTP message header
SYNOPSIS
use HTTP::Header;
my $h = HTTP::Header.new;
$h.field(Accept => 'text/plain');
say $h.field('Accept');
$h.remove-field('Accept');
DESCRIPTION
This module provides a class with a set of methods making us able to easily handle HTTP message header.
METHODS
method new
method new(*%fields) returns HTTP::Header
A constructor. Takes name => value pairs as arguments.
my $head = HTTP::Header.new(:h1<v1>, :h2<v2>);
method header
multi method field(HTTP::Header:, Str $s) returns HTTP::Header::Field
multi method field(HTTP::Header:, *%fields)
Gets/sets header field.
my $head = HTTP::Header.new(:h1<v1>, :h2<v2>);
say $head.header('h1');
my $head = HTTP::Header.new(:h1<v1>, :h2<v2>);
$head.header(:h3<v3>);
method init-field
method init-field(HTTP::Header:, *%fields)
Initializes a header field: adds a field only if it does not exist yet.
my $head = HTTP::Header.new;
$head.header(:h1<v1>);
$head.init-header(:h1<v2>, :h2<v2>); # it doesn't change the value of 'h1'
say ~$head;
method push-header
method push-field(HTTP::Header:, HTTP::Header::Field $field)
Pushes a new field. Does not check if exists.
my $head = HTTP::Header.new;
$head.push-header( HTTP::Header::Field.new(:name<n1>, :value<v1>) );
say ~$head;
method remove-header
method remove-field(HTTP::Header:, Str $field)
Removes a field of name $field.
my $head = HTTP::Header.new;
$head.header(:h1<v1>);
$head.remove-header('h1');
method header-field-names
method header-field-names(HTTP::Header:) returns Parcel
Returns a list of names of all fields.
my $head = HTTP::Header.new(:h1<v1>, :h2<v2>);
my @names = $head.header-field-names;
say @names; # h1, h2
method clear
method clear(HTTP::Header:)
Removes all fields.
my $head = HTTP::Header.new(:h1<v1>, :h2<v2>);
$head.clear;
method Str
method Str(HTTP::Header:, Str $eol = "\n")
Returns readable form of the whole header section.
method parse
method parse(HTTP::Header:, Str $raw)
Parses the whole header section.
my $head = HTTP::Header.new.parse("h1: v1\r\nh2: v2\r\n");
say $head.perl;