HTTP::Response
HTTP::Response(3) User Contributed Perl Documentation HTTP::Response(3)
NAME
HTTP::Response - HTTP style response message
SYNOPSIS
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";
}
DESCRIPTION
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 inher-
its its methods. The following additional methods are available:
$r = HTTP::Response->new( $code )
$r = HTTP::Response->new( $code, $msg )
$r = HTTP::Response->new( $code, $msg, $header )
$r = HTTP::Response->new( $code, $msg, $header, $content )
Constructs a new "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 $con-
tent argument should be a string of bytes. The meaning these argu-
ments are described below.
$r = HTTP::Response->parse( $str )
This constructs a new response object by parsing the given string.
$r->code
$r->code( $code )
This is used to get/set the code attribute. The code is a 3 digit
number that encode the overall outcome of a HTTP response. The
"HTTP::Status" module provide constants that provide mnemonic names
for the code attribute.
$r->message
$r->message( $message )
This is used to get/set the message attribute. The message is a
short human readable single line string that explains the response
code.
$r->header( $field )
$r->header( $field => $value )
This is used to get/set header values and it is inherited from
"HTTP::Headers" via "HTTP::Message". See HTTP::Headers for details
and other similar methods that can be used to access the headers.
$r->content
$r->content( $content )
This is used to get/set the raw content and it is inherited from
the "HTTP::Message" base class. See HTTP::Message for details and
other methods that can be used to access the content.
$r->decoded_content( %options )
This will return the content after any "Content-Encoding" and
charsets has been decoded. See HTTP::Message for details.
$r->request
$r->request( $request )
This is used to get/set the request attribute. The request
attribute is a reference to the the request that caused this
response. It does not have to be the same request passed to the
$ua->request() method, because there might have been redirects and
authorization retries in between.
$r->previous
$r->previous( $response )
This is used to get/set the previous attribute. The previous
attribute is used to link together chains of responses. You get
chains of responses if the first response is redirect or unautho-
rized. The value is "undef" if this is the first response in a
chain.
$r->status_line
Returns the string "<code> <message>". If the message attribute is
not set then the official name of <code> (see HTTP::Status) is sub-
stituted.
$r->base
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 prior-
ity order):
1. Embedded in the document content, for instance <BASE
HREF="..."> in HTML documents.
2. 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.
3. The URI used to request this response. This might not be the
original URI that was passed to $ua->request() method, because
we might have received some redirect responses first.
If neither 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).
$r->as_string
$r->as_string( $eol )
Returns a textual representation of the response.
$r->is_info
$r->is_success
$r->is_redirect
$r->is_error
These methods indicate if the response was informational, success-
ful, a redirection, or an error. See HTTP::Status for the meaning
of these.
$r->error_as_HTML
Returns a string containing a complete HTML document indicating
what error occurred. This method should only be called when
$r->is_error is TRUE.
$r->current_age
Calculates the "current age" of the response as specified by RFC
2616 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 rep-
resenting the age in seconds.
$r->freshness_lifetime
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.
$r->is_fresh
Returns TRUE if the response is fresh, based on the values of
freshness_lifetime() and current_age(). If the response is no
longer fresh, then it has to be refetched or revalidated by the
origin server.
$r->fresh_until
Returns the time when this entity is no longer fresh.
SEE ALSO
HTTP::Headers, HTTP::Message, HTTP::Status, HTTP::Request
COPYRIGHT
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.
perl v5.8.6 2005-12-06 HTTP::Response(3)