HTTP::Response - Class encapsulating
HTTP Responses
require HTTP::Response;
The HTTP::Response
class encapsulate
HTTP style responses.
A response consist of a response line, some headers, and a (potential empty) content. Note that the
LWP library will use
HTTP style responses also for non-HTTP protocol schemes.
Instances of this class are usually created and returned by the
request()
method of an LWP::UserAgent
object:
...
$response = $ua->request($request)
if ($response->is_success) {
print $response->content;
} else {
print $response->error_as_HTML;
}
HTTP::Response
is a subclass of HTTP::Message
and therefore inherits its methods. The inherited methods are
header(),
push_header(),
remove_header(),
headers_as_string(),
and
content().
The header convenience methods are also available.
See
Message for details.
Constructs a new HTTP::Response
object describing a response with response code $rc
and optional message $msg
.
These methods provide public access to the member variables. The first two
containing respectively the response code and the message of the response.
The request attribute is a reference the request that gave this response.
It does not have to be the same request as passed to the $ua->request()
method, because there might have been redirects and authorization retries
in between.
The previous attribute is used to link together chains of responses. You
get chains of responses if the first response is redirect or unauthorized.
Returns the base
URL for this response. The return value will be a reference to a
URI::URL object.
The base
URL is obtained from one the following sources (in
priority order):
-
Embedded in the document content, for instance
<BASE
HREF=``...''> in
HTML documents.
-
A ``Content-Base:'' or a ``Content-Location:'' header
in the response.
For backwards compatability with older
HTTP implementations we will also look for the
``Base:'' header.
-
The
URL used to request this response. This might not be the original
URL that was passed to $ua->request() method, because we might have received some redirect responses first.
When the
LWP protocol modules produce the HTTP::Response object, then any base
URL embedded in the document (step 1) will already have initialized the ``Content-Base:'' header. This means that this method only perform the last 2 steps (the content is not always available either).
Method returning a textual representation of the request. Mainly useful for
debugging purposes. It takes no arguments.
These methods indicate if the response was informational, sucessful, a
redirection, or an error.
Return a string containing a complete
HTML document indicating what error occurred. This method should only be called when $r->is_error is
TRUE.
This function will calculate the ``current age'' of the response as
specified by <draft-ietf-http-v11-spec-07> section 13.2.3. The age of a response is
the time since it was sent by the origin server. The returned value is a
number representing the age in seconds.
This function will calculate the ``freshness lifetime'' of the response as
specified by <draft-ietf-http-v11-spec-07> section 13.2.4. The ``freshness lifetime''
is the length of time between the generation of a response and its
expiration time. The returned value is a number representing the freshness
lifetime in seconds.
If the response does not contain an ``Expires'' or a ``Cache-Control''
header, then this function will apply some simple heuristic based on
'Last-Modified' to determine a suitable lifetime.
Returns
TRUE if the response is fresh, based on the values of
freshness_lifetime()
and current_age().
If the
response is not longer fresh, then it has to be refetched or revalidated by
the origin server.
Returns the time when this entiy is no longer fresh.