'client-transfer-encoding' => [
'chunked'
]
####
use Crypt::SSLeay;
use Net::SSL;
use WWW::Mechanize;
....
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$mech = WWW::Mechanize->new(autocheck =>1, noproxy =>1,ssl_opts => { 'verify_hostname' => 0 });
...
####
#WORKING HTTPS DOWNLOAD Using Net::SSL in Windows + Active Perl
use strict;
use warnings;
use Crypt::SSLeay;
use Net::SSL;
use WWW::Mechanize;
use HTTP::Cookies;
use HTTP::Message;
use Digest::MD5;
use File::Slurp;
use Data::Dumper;
#Globals
$|=1;
#Force LWP to use Net::SSL instead of IO::Socket::SSL
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
delete $ENV{https_proxy} if exists $ENV{https_proxy};
delete $ENV{http_proxy} if exists $ENV{http_proxy};
#Variables
my $browser = "";
my $url = 'https://developer.apple.com/standards/qtff-2001.pdf';
my $pageContent = '';
my $fileName = '';
my $md5Obj = Digest::MD5->new();
print "\n USING Net::SSL";
#Init Mechanize
$browser = WWW::Mechanize->new(autocheck =>1, noproxy=>1, ssl_opts => { 'verify_hostname' => 0 });
# Add cookie jar
$browser->cookie_jar(HTTP::Cookies->new());
$browser->agent_alias( 'Linux Mozilla');
$browser->add_header('Accept-Encoding'=>scalar HTTP::Message::decodable());
$browser->timeout(120);
#Get URL
$browser->get($url);
if ($browser->success())
{
print "\n INFO: Got URL: $url";
$fileName = $browser->response()->filename();
print "\n INFO: Save in File: $fileName";
$browser->save_content($fileName);
#Calculate MD5 sum
$pageContent = read_file( $fileName, binmode => ':raw' );
print "\n INFO: $fileName Size: ", length($pageContent)/1024," KB";
$md5Obj->add($pageContent);
print "\n INFO: $fileName MD5 Sum: ", $md5Obj->hexdigest();
undef $md5Obj;
}
else
{
print "\n ERROR: Can't get URL $url ",$browser->status();
}
print "\n\n INFO: ********************* DUMP ********************";
print "\n",Dumper(\$browser);
print "\n INFO: ********************* DUMP ********************";
exit 0;
####
#NOT WORKING HTTPS DOWNLOAD Using IO::Socket::SSL in Windows + Active Perl
use strict;
use warnings;
use IO::Socket::SSL;
use WWW::Mechanize;
use HTTP::Cookies;
use HTTP::Message;
use Digest::MD5;
use File::Slurp;
use Data::Dumper;
#Globals
$|=1;
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
#Variables
my $browser = "";
my $url = 'https://developer.apple.com/standards/qtff-2001.pdf';
my $pageContent = '';
my $fileName = '';
my $md5Obj = Digest::MD5->new();
print "\n USING IO::Socket::SSL";
#Init Mechanize
$browser = WWW::Mechanize->new(autocheck =>1, noproxy=>1,ssl_opts => { 'verify_hostname' => 0 });
# Add cookie jar
$browser->cookie_jar(HTTP::Cookies->new());
$browser->agent_alias( 'Linux Mozilla');
$browser->add_header('Accept-Encoding'=>scalar HTTP::Message::decodable());
$browser->timeout(120);
#Get URL
$browser->get($url);
if ($browser->success())
{
print "\n INFO: Got URL: $url";
$fileName = $browser->response()->filename();
print "\n INFO: Save in File: $fileName";
$browser->save_content($fileName);
#Calculate MD5 sum
$pageContent = read_file( $fileName, binmode => ':raw' );
print "\n INFO: $fileName Size: ", length($pageContent)/1024," KB";
$md5Obj->add($pageContent);
print "\n INFO: $fileName MD5 Sum: ", $md5Obj->hexdigest();
undef $md5Obj;
}
else
{
print "\n ERROR: Can't get URL $url ",$browser->status();
}
print "\n\n INFO: ********************* DUMP ********************";
print "\n",Dumper(\$browser);
print "\n INFO: ********************* DUMP ********************";
exit 0;