1) You built a POST request, but didn't actually send it.
2) I'd suggest using
WWW::Mechanize instead of hand rolled UA calls, let it handle the nitty-gritty.
#!/usr/bin/env perl
use strict;
use HTTP::Cookies;
use WWW::Mechanize;
use Data::Dumper;
my ($username, $password);
while (!$username || !$password) {
### Prompt for username
print "\nAkamai Administrator credentials\n";
print "username> ";
$username = <STDIN>;
### Prompt for password
print "password> ";
system 'stty -echo';
$password = <STDIN>;
system 'stty echo';
chomp($username, $password);
}
my $login_url = 'https://control.akamai.com/EdgeAuth/login.jsp';
my $real_page = 'https://control.akamai.com/home/view/main';
my $mech = WWW::Mechanize->new();
$mech->agent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Ge
+cko/20100101 Firefox/12.0");
$mech->get( $real_page );
if ( $mech->base =~ m/$login_url/)
{
$mech->submit_form(
form_number => 2,
fields => {
"User ID" => $username,
"Password" => $password
}
);
}
print $mech->content();
This gets me as far as verifying that I don't have a login:
"Information entered does not match what we have on file. Please try again."
The main points here are
- request the page you want
- detect if you are on the login page and submit the login credentials