NAME
Net::HTTP::NB - Non-blocking HTTP client
VERSION
version 6.23
SYNOPSIS
use
Net::HTTP::NB;
my
$s
= Net::HTTP::NB->new(
Host
=>
"www.perl.com"
) ||
die
$@;
$s
->write_request(
GET
=>
"/"
);
use
IO::Select;
my
$sel
= IO::Select->new(
$s
);
READ_HEADER: {
die
"Header timeout"
unless
$sel
->can_read(10);
my
(
$code
,
$mess
,
%h
) =
$s
->read_response_headers;
redo
READ_HEADER
unless
$code
;
}
while
(1) {
die
"Body timeout"
unless
$sel
->can_read(10);
my
$buf
;
my
$n
=
$s
->read_entity_body(
$buf
, 1024);
last
unless
$n
;
$buf
;
}
DESCRIPTION
Same interface as Net::HTTP
but it will never try multiple reads when the read_response_headers() or read_entity_body() methods are invoked. This make it possible to multiplex multiple Net::HTTP::NB using select without risk blocking.
If read_response_headers() did not see enough data to complete the headers an empty list is returned.
If read_entity_body() did not see new entity data in its read the value -1 is returned.
SEE ALSO
AUTHOR
Gisle Aas <gisle@activestate.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2001 by Gisle Aas.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.