The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::HTTPS::Any - Simple HTTPS client using whichever underlying SSL module is available

SYNOPSIS

  use Net::HTTPS::Any qw(https_get https_post);
  
  ( $page, $response, %reply_headers )
      = https_get(
                   { 'host' => 'www.fortify.net',
                     'port' => 443,
                     'path' => '/sslcheck.html',
                     'args' => { 'field' => 'value' },
                     #'args' => [ 'field'=>'value' ], #order preserved
                   },
                 );

  ( $page, $response, %reply_headers )
      = https_post(
                    'host' => 'www.google.com',
                    'port' => 443,
                    'path' => '/accounts/ServiceLoginAuth',
                    'args' => { 'field' => 'value' },
                    #'args' => [ 'field'=>'value' ], #order preserved
                  );
  
  #...

DESCRIPTION

This is a simple wrapper around either of the two available SSL modules. It offers a unified API for sending GET and POST requests over HTTPS and receiving responses.

It depends on Net::SSLeay _or_ ( Crypt::SSLeay and LWP::UserAgent ).

WHY THIS MODULE

If you just want to write something that speaks HTTPS, you don't need this module. Just go ahead and use whichever of the two modules is good for you. Don't worry about it.

On the other hand, if you are a CPAN author or distribute a Perl application, especially if you aim to support multiple OSes/disributions, using this module for speaking HTTPS may make things easier on your users. It allows your code to be used with either SSL implementation.

FUTURE

Using LWP::Protocol::https 6.02 or later, the LWP path actually uses Net::SSLeay also instead of Crypt::SSLeay. Going forward that makes this module more of historical interest, especially so since modern LWP has its own mechanism to force use of Crypt::SSLeay: $Net::HTTPS::SSL_SOCKET_CLASS = "Net::SSL";

Therefore this module will likely eventually become a wrapper around a single codepath, driven by the conservative needs of Business::OnlinePayment::HTTPS.

FUNCTIONS

https_get HASHREF | FIELD => VALUE, ...

Accepts parameters as either a hashref or a list of fields and values.

Parameters are:

host
port
path
headers (hashref)

For example: { 'X-Header1' => 'value', ... }

args

CGI arguments, either as a hashref or a listref. In the latter case, ordering is preserved (see Tie::IxHash to do so when passing a hashref).

debug

Set true to enable debugging.

Returns a list consisting of the page content as a string, the HTTP response code and message (i.e. "200 OK" or "404 Not Found"), and a list of key/value pairs representing the HTTP response headers.

https_post HASHREF | FIELD => VALUE, ...

Accepts parameters as either a hashref or a list of fields and values.

Parameters are:

host
port
path
headers (hashref)

For example: { 'X-Header1' => 'value', ... }

Content-Type

Defaults to "application/x-www-form-urlencoded" if not specified.

args

CGI arguments, either as a hashref or a listref. In the latter case, ordering is preserved (see Tie::IxHash to do so when passing a hashref).

content

Raw content (overrides args). A simple scalar containing the raw content.

debug

Set true to enable debugging in the underlying SSL module.

Returns a list consisting of the page content as a string, the HTTP response code and message (i.e. "200 OK" or "404 Not Found"), and a list of key/value pairs representing the HTTP response headers.

AUTHOR

Ivan Kohler, <ivan-net-https-any at freeside.biz>

BUGS

Please report any bugs or feature requests to bug-net-https-any at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-HTTPS-Any. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Net::HTTPS::Any

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2008-2014 Freeside Internet Services, Inc. (http://freeside.biz/) All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.