in reply to WWW::Mechanize Cognos web

If your authentication is Basic where the browser pops up a window asking for your username and password then you can provide these by creating a child class of WWW::Mechanize (or LWP::UserAgent) as follows:
{ package MyAgent; use vars qw(@ISA); @ISA = qw(LWP::UserAgent); sub new { my $self = LWP::UserAgent::new(@_); $self->agent("lwp-request/$LWP::UserAgent::VERSION"); $self; } # this routine gets called when your browser # would otherwise be asked to provide a # username and password sub get_basic_credentials { my ($self, $realm, $uri) = @_; print( STDERR " - providing auth to realm \"$realm\"\n" ); return( $username, $password ); } }
{ package MyMech; use vars qw(@ISA); @ISA = qw(WWW::Mechanize); sub new { my $self = WWW::Mechanize::new(@_); $self->agent("www-mechanize/$WWW::Mechanize::VERSION"); $self; } # this routine gets called when your browser # would otherwise be asked to provide a # username and password sub get_basic_credentials { my ($self, $realm, $uri) = @_; print( STDERR " - providing auth to realm \"$realm\"\n" ); return( $username, $password ); } }

You just then use your new class instead.

my $mech = MyMech->new(); $mech->get( $url ); print $mech->status, "\n"; print $mech->success;

Note this technique not only works with web sites using Basic but company web proxies that stop and ask you for a username and password before proceeding (it appears this could be the case for this particular thread).

Update:
- Added readmore tags..
- Added comment about company proxies