HTTP::Config - Configuration for request and response objects
version 6.44
use HTTP::Config; my $c = HTTP::Config->new; $c->add(m_domain => ".example.com", m_scheme => "http", verbose => 1); use HTTP::Request; my $request = HTTP::Request->new(GET => "http://www.example.com"); if (my @m = $c->matching($request)) { print "Yadayada\n" if $m[0]->{verbose}; }
An HTTP::Config
object is a list of entries that can be
matched against request or request/response pairs. Its purpose is to
hold configuration data that can be looked up given a request or
response object.
Each configuration entry is a hash. Some keys specify matching to occur against attributes of request/response objects. Other keys can be used to hold user data.
The following methods are provided:
Constructs a new empty HTTP::Config
object and returns
it.
Returns the list of entries in the configuration object. In scalar context returns the number of entries.
Return true if there are no entries in the configuration object. This
is just a shorthand for not $conf->entries
.
Adds a new entry to the configuration. You can either pass separate key/value pairs or a hash reference.
Removes (and returns) the entries that have matches for all the
key/value pairs in %spec
. If %spec
is empty
this will match all entries; so it will empty the configuration
object.
Returns the entries that match the given $uri
,
$request
and $response
triplet. If called with
a single $request
object then the $uri
is
obtained by calling its 'uri_canonical' method. If called with a single
$response
object, then the request object is obtained by
calling its 'request' method; and then the $uri
is obtained
as if a single $request
was provided. The entries are
returned with the most specific matches first. In scalar context returns
the most specific match or undef
in none match.
Wrappers that hides the entries themselves.
The following keys on a configuration entry specify matching. For all of these you can provide an array of values instead of a single value. The entry matches if at least one of the values in the array matches.
Entries that require match against a response object attribute will never match unless a response object was provided.
Matches if the URI uses the specified scheme; e.g. http.
If $bool
is TRUE; matches if the URI uses a secure
scheme. If $bool
is FALSE; matches if the URI does not use
a secure scheme. An example of a secure scheme is https.
Matches if the URI's host_port method return the specified value.
Matches if the URI's host method returns the specified value.
Matches if the URI's port method returns the specified value.
Matches if the URI's host method return a value that within the given domain. The hostname www.example.com will for instance match the domain .com.
Matches if the URI's path method returns the specified value.
Matches if the URI's path is the specified path or has the specified path as prefix.
Matches if the regular expression matches the URI's path. Eg. qr/\.html$/.
Matches if the request method matches the specified value. Eg. GET or POST.
Matches if the response status code matches. If a single digit is specified; matches for all response status codes beginning with that digit.
Matches if the request is to be sent to the given Proxy server.
Matches if the response media type matches. With a value of html
matches if $response
->content_is_html returns TRUE. With
a value of xhtml matches if $response
->content_is_xhtml
returns TRUE.
Matches if the URI object provides the method.
Matches if the URI's $method
method returns the given
value.
Matches if either the request or the response have a header
$field
with the given value.
Matches if the response object has that key, or the entry has the given value.
URI, HTTP::Request, HTTP::Response
Gisle Aas <gisle@activestate.com>
This software is copyright (c) 1994 by Gisle Aas.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.