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_NEED_READ or
  HTTPS_NEED_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 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.