HTTP::Response - HTTP style response message
Response objects are returned by the request() method of the LWP::UserAgent
:
# ... $response = $ua->request($request) if ($response->is_success) { print $response->content; } else { print STDERR $response->status_line, "\n"; }
The HTTP::Response
class encapsulates HTTP style responses. A
response consists of a response line, some headers, and a content
body. Note that the LWP library uses HTTP style responses even for
non-HTTP protocol schemes. Instances of this class are usually
created and returned by the request() method of an LWP::UserAgent
object.
HTTP::Response
is a subclass of HTTP::Message
and therefore
inherits its methods. The following additional methods are available:
HTTP::Response
object describing a response with
response code $code and optional message $msg. The optional $header
argument should be a reference to an HTTP::Headers
object or a
plain array reference of key/value pairs. The optional $content
argument should be a string of bytes. The meaning these arguments are
described below.
HTTP::Status
module provide constants that provide mnemonic names
for the code attribute.
HTTP::Headers
via HTTP::Message
. See HTTP::Headers for
details and other similar methods that can be used to access the
headers.
HTTP::Message
base class. See HTTP::Message for details and
other methods that can be used to access the content.
Content-Encoding
and
charsets have been decoded. See HTTP::Message for details.
undef
if this is the first response in a chain.
Returns the base URI for this response. The return value will be a reference to a URI object.
The base URI is obtained from one the following sources (in priority order):
A "Content-Base:" or a "Content-Location:" header in the response.
For backwards compatibility with older HTTP implementations we will also look for the "Base:" header.
If none of these sources provide an absolute URI, undef is returned.
When the LWP protocol modules produce the HTTP::Response object, then any base URI embedded in the document (step 1) will already have initialized the "Content-Base:" header. This means that this method only performs the last 2 steps (the content is not always available either).
Returns a filename for this response. Note that doing sanity checks on the returned filename (eg. removing characters that cannot be used on the target filesystem where the filename would be used, and laundering it for security purposes) are the caller's responsibility; the only related thing done by this method is that it makes a simple attempt to return a plain filename with no preceding path segments.
The filename is obtained from one the following sources (in priority order):
MIME::QuotedPrint
(for "Q"
encoding), MIME::Base64
(for "B" encoding), and Encode
modules.
If a filename cannot be derived from any of these sources, undef is returned.
Calculates the "freshness lifetime" of the response as specified by RFC 2616 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.
HTTP::Headers, HTTP::Message, HTTP::Status, HTTP::Request
Copyright 1995-2004 Gisle Aas.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.