HTTP-Promise
view release on metacpan or search on metacpan
lib/HTTP/Promise/Headers.pm view on Meta::CPAN
}
# e.g. text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
sub accept
{
my $self = shift( @_ );
if( @_ )
{
my $types = $self->_get_args_as_array( @_ );
$self->header( accept => $types );
CORE::delete( $self->{acceptables} );
}
return( $self->_set_get_one( 'Accept' ) );
}
# Obsolete header that should not be used
sub accept_charset { return( shift->_set_get_one( 'Accept-Charset', @_ ) ); }
# e.g. gzip, deflate, br
sub accept_encoding { return( shift->_set_get_multi( 'Accept-Encoding', @_ ) ); }
# e.g.: en-GB,fr-FR;q=0.8,fr;q=0.6,ja;q=0.4,en;q=0.2
sub accept_language { return( shift->_set_get_multi( 'Accept-Language', @_ ) ); }
# NOTE: Accept-Patch is a response header
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Patch>
sub accept_patch { return( shift->_set_get_one( 'Accept-Patch', @_ ) ); }
# NOTE: Accept-Post is a response header
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Post>
sub accept_post { return( shift->_set_get_multi( 'Accept-Post', @_ ) ); }
# NOTE: Accept-Tanges is a response header
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges>
sub accept_ranges { return( shift->_set_get_multi( 'Accept-Ranges', @_ ) ); }
sub acceptables
{
my $self = shift( @_ );
return( $self->{acceptables} ) if( $self->{acceptables} );
my $accept_raw = $self->accept;
if( $accept_raw )
{
my $f = $self->new_field( accept => $accept_raw ) ||
return( $self->pass_error );
$self->{acceptables} = $f;
}
return( $self->{acceptables} );
}
sub add { return( shift->push_header( @_ ) ); }
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age>
sub age { return( shift->_set_get_one( 'Age', @_ ) ); }
# NOTE: Allow is a response header
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Allow>
sub allow { return( shift->_set_get_multi( 'Allow', @_ ) ); }
# Response header: <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials>
sub allow_credentials { return( shift->_set_get_one( 'Access-Control-Allow-Credentials', @_ ) ); }
# Response header <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers>
sub allow_headers { return( shift->_set_get_multi( 'Access-Control-Allow-Headers', @_ ) ); }
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>
sub allow_methods { return( shift->_set_get_one( 'Access-Control-Allow-Methods', @_ ) ); }
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin>
sub allow_origin { return( shift->_set_get_one( 'Access-Control-Allow-Origin', @_ ) ); }
# <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc>
sub alt_svc { return( shift->_set_get_multi( 'Alt-Svc', @_ ) ); }
sub alternate_server
{
my $self = shift( @_ );
if( @_ )
{
# { name => 'h2', value => 'alt.example.com:443', ma => 2592000, persist => 1
my $def = $self->_get_args_as_hash( @_ );
my $name = CORE::delete( $def->{name} );
my $value = CORE::delete( $def->{value} );
my $f = $self->new_field( alt_svc => [$name => $value], $def ) ||
return( $self->pass_error );
$self->push_header( 'Alt-Svc' => "$f" );
}
else
{
my $all = $self->alt_svc;
return( $all ) if( !$all->length );
my $a = $self->new_array;
$all->foreach(sub
{
my $f = $self->new_field( alt_svc => $_ ) ||
return( $self->pass_error );
$a->push( $f );
});
return( $a );
}
}
# NOTE: as_string() is inherited
# NOTE: unfortunately, HTTP::XSHeaders is not dealing with as_string properly
# It takes the given eol and replace simply any instance in-between line of \n with it,
# thus if you have something like: foo\r\nbar\r\n, it will end up with
# foo\r\r\nbar\r\n instead of foot\r\nbar\r\n
# Bug report #10 <https://github.com/p5pclub/http-xsheaders/issues/10>
# sub as_string { return( shift->SUPER::as_string( @_ ? @_ : ( CRLF ) ) ); }
sub as_string
{
my $self = shift( @_ );
my $type = $self->type;
# If the type is multipart, ensure we have a boundary set.
# This is a convenience for the user, who only needs to set the mime-type
# without having to worry about generating a boundary.
if( defined( $type ) && lc( [split( '/', $type, 2 )]->[0] ) eq 'multipart' )
{
my $boundary = $self->multipart_boundary;
unless( $boundary )
{
lib/HTTP/Promise/Headers.pm view on Meta::CPAN
$h->accept_patch( 'application/example, text/example' );
$h->accept_patch( [qw( application/example text/example )] );
$h->accept_patch( 'text/example;charset=utf-8' );
$h->accept_patch( 'application/merge-patch+json' );
Sets or gets the C<Accept-Patch> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<rfc5789, section 3.1|https://tools.ietf.org/html/rfc5789#section-3.1>, L<rfc7231, section 4.3.4|https://tools.ietf.org/html/rfc7231#section-4.3.4> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Pat...
=head2 accept_post
$h->accept_post( 'application/example, text/example' );
$h->accept_post( [qw( application/example text/example )] );
$h->accept_post( 'image/webp' );
$h->accept_post( '*/*' );
Sets or gets the C<Accept-Post> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<rfc7231, section 4.3.3|https://tools.ietf.org/html/rfc7231#section-4.3.3> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Post>
=head2 accept_ranges
$h->accept_ranges(1234);
Sets or gets the C<Accept-Ranges> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<rfc7233, section 2.3|https://tools.ietf.org/html/rfc7233#section-2.3> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Ranges>
=head2 acceptables
This returns a new L<HTTP::Promise::Headers::Accept> object based on the content of the C<Accept> header value.
=head2 age
$h->age(1234);
Sets or gets the C<Age> header field value. It takes a numeric value.
This is a server response header.
See L<rfc7234, section 5.1|https://tools.ietf.org/html/rfc7234#section-5.1> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age>
=head2 allow
$h->allow( 'GET, POST, HEAD' );
$h->allow( [qw( GET POST HEAD )] );
Sets or gets the C<Allow> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<rfc7231, section 7.4.1|https://tools.ietf.org/html/rfc7231#section-7.4.1> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age>
=head2 allow_credentials
# Access-Control-Allow-Credentials: true
$h->allow_credentials( 'true' );
Sets or gets the C<Access-Control-Allow-Credentials> header field value. It takes a string boolean value: C<true> or C<false>.
See L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials>
=head2 allow_headers
# Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests
$h->allow_headers( 'X-Custom-Header, Upgrade-Insecure-Requests' );
$h->allow_headers( [qw( X-Custom-Header Upgrade-Insecure-Requests )] );
Sets or gets the C<Access-Control-Allow-Headers> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<rfc7231, section 7.4.1|https://tools.ietf.org/html/rfc7231#section-7.4.1> and L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age>
=head2 allow_methods
# Access-Control-Allow-Methods: POST, GET, OPTIONS
$h->allow_methods( 'POST, GET, OPTIONS' );
$h->allow_methods( [qw( POST GET OPTIONS )] );
# Access-Control-Allow-Methods: *
$h->allow_methods( '*' );
Sets or gets the C<Access-Control-Allow-Methods> header field value. It takes either a string or an array or array reference of values.
This is a server response header.
See L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>
=head2 allow_origin
# Access-Control-Allow-Origin: *
$h->allow_origin( '*' );
# Access-Control-Allow-Origin: https://food.example.org
$h->allow_origin( 'https://food.example.org' );
# Access-Control-Allow-Origin: null
$h->allow_origin( 'null' );
Sets or gets the C<Access-Control-Allow-Origin> header field value. It takes a string value.
This is a server response header.
See L<Mozilla documentation|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>
=head2 alt_svc
# Alt-Svc: h2=":443"; ma=2592000;
$h->alt_svc( 'h2=":443"; ma=2592000' );
# Alt-Svc: h2=":443"; ma=2592000; persist=1
$h->alt_svc( 'h2=":443"; ma=2592000; persist=1' );
# Alt-Svc: h2="alt.example.com:443", h2=":443"
$h->alt_svc( 'h2="alt.example.com:443", h2=":443"' );
# Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600
$h->alt_svc( 'h3-25=":443"; ma=3600, h2=":443"; ma=3600' );
Sets or gets the C<Alt-Svc> header field value. It takes either a string or an array or array reference of values.
See also L<HTTP::Promise::Headers::AltSvc> to have a more granular control.
( run in 0.454 second using v1.01-cache-2.11-cpan-13bb782fe5a )