When creating an instance of this class using
LWP::Protocol::create, 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.
$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 UserAgent for description of the arguments.
alarm
function to implement timeouts.
$arg is
undefined, then the content is stored within the $response. If
$arg is a simple scalar, then $arg is interpreted
as a file name and the content is written to this file. If
$arg is a reference to a routine, then content is passed to
this routine.
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.