Provided by: libnet-https-nb-perl_0.13-1_all
NAME
Net::HTTPS::NB - Non-blocking HTTPS client
SYNOPSIS
Example from Net::HTTP::NB use Net::HTTPS::NB; use IO::Select; use strict; my $s = Net::HTTPS::NB->new(Host => "pause.perl.org") || die $@; $s->write_request(GET => "/"); 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; print $buf; } Example of non-blocking connect use strict; use Net::HTTPS::NB; use IO::Select; my $sock = Net::HTTPS::NB->new(Host => 'encrypted.google.com', Blocking => 0); my $sele = IO::Select->new($sock); until ($sock->connected) { if ($HTTPS_ERROR == HTTPS_WANT_READ) { $sele->can_read(); } elsif($HTTPS_ERROR == HTTPS_WANT_WRITE) { $sele->can_write(); } else { die 'Unknown error: ', $HTTPS_ERROR; } } See `examples' subdirectory for more examples.
DESCRIPTION
Same interface as Net::HTTPS but it will never try multiple reads when the read_response_headers() or read_entity_body() methods are invoked. In addition allows non- blocking connect. 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.
PACKAGE CONSTANTS
Imported by default HTTPS_WANT_READ HTTPS_WANT_WRITE
PACKAGE VARIABLES
Imported by default $HTTPS_ERROR
METHODS
new(%cfg) Same as Net::HTTPS::new, but in addition allows `Blocking' parameter. By setting this parameter to 0 you can perform non-blocking connect. See connected() to determine when connection completed. connected() Returns true value when connection completed (https handshake done). Otherwise returns false. In this case you can check $HTTPS_ERROR to determine what handshake need for, read or write. $HTTPS_ERROR could be HTTPS_WANT_READ or HTTPS_WANT_WRITE respectively. See "SYNOPSIS". blocking($flag) As opposed to Net::HTTPS where blocking method consciously broken you can set socket blocking. For example you can return socket to blocking state after non-blocking connect.
SEE ALSO
Net::HTTP, Net::HTTP::NB
COPYRIGHT
Copyright 2011-2013 Oleg G <oleg@cpan.org>. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.