LWP::Protocol - Base class for LWP protocols |
LWP::Protocol - Base class for LWP protocols
package LWP::Protocol::foo; require LWP::Protocol; @ISA=qw(LWP::Protocol);
This class is used a the base class for all protocol implementations supported by the LWP library.
When creating an instance of this class using
LWP::Protocol::create($url)
, and you get an initialised subclass
appropriate for that access method. In other words, the
LWP::Protocol::create() function calls the constructor for one of its
subclasses.
All derived LWP::Protocol classes need to override the request()
method which is used to service a request. The overridden method can
make use of the collect()
function to collect together chunks of data
as it is received.
The following methods and functions are provided:
new()
request(...)
$response = $protocol->request($request, $proxy, undef); $response = $protocol->request($request, $proxy, '/tmp/sss'); $response = $protocol->request($request, $proxy, \&callback, 1024);
Dispactches a request over the protocol, and returns a response object. This method needs to be overridden in subclasses. Referer to the LWP::UserAgent manpage for description of the arguments.
The $collector is a routine that will be called and which is reponsible for returning pieces (as ref to scalar) of the content to process. The $collector signals EOF by returning a reference to an empty sting.
The return value from collect()
is the $response object reference.
Note: We will only use the callback or file argument if $response->is_success(). This avoids sendig content data for redirects and authentization responses to the callback which would be confusing.
collect()
with a collector callback that
returns a reference to $content the first time and an empty string the
next.
Inspect the LWP/Protocol/file.pm and LWP/Protocol/http.pm files for examples of usage.
Copyright 1995-2001 Gisle Aas.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
LWP::Protocol - Base class for LWP protocols |