in reply to WWW::Mechanize Problem

They take my username directly from the system.

Using NTLM? If so, use LWP::Authen::Ntlm. (Keep in mind LWP::UserAgent is the base class of WWW::Mechanize.)

If not, would you care to post the output of the following?

my $response = $mech->response(); print $response->status_line(), "\n"; print $response->headers()->as_string();

By the way, "i am not getting any page" is an awful diagnostic. It's not even true, since a page is always returned (if only a 500 error message).

Replies are listed 'Best First'.
Re^2: WWW::Mechanize Problem
by venkatesan_G02 (Sexton) on Apr 06, 2009 at 21:30 UTC
    Hi, i have given below my code and the output. Please review it and provide your suggestion:

    My CODE:
    #!C:/Perl/bin/perl.exe
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Request;
    use HTTP::Response;
    use HTML::LinkExtor;
    my $URL= "http://eonet.level3.com/";
    $browser = LWP::UserAgent->new();
    $browser->timeout(10);
    my $request = HTTP::Request->new(GET => $URL);
    my $response = $browser->request($request);
    if ($response->is_error()) {printf "%s\n", $response->status_line;}
    $contents = $response->content();
    #print $contents;
    print $response->status_line(), "\n";
    print $response->headers()->as_string();


    Output when i run the program:

    C:\Documents and Settings\g.venkatesan\Desktop>perl lwp_test.pl

    401 Unauthorized
    401 Unauthorized
    Date: Mon, 06 Apr 2009 21:24:30 GMT
    Server: Microsoft-IIS/6.0
    WWW-Authenticate: Negotiate
    WWW-Authenticate: NTLM
    WWW-Authenticate: Basic realm="corp.global.level3.com"
    Content-Length: 1656
    Content-Type: text/html
    Content-Type: text/html; charset=Windows-1252
    Client-Date: Mon, 06 Apr 2009 21:24:31 GMT
    Client-Peer: 10.1.131.202:80
    Client-Response-Num: 1
    Client-Warning: Unsupported authentication scheme 'ntlm'
    Title: You are not authorized to view this page
    X-Powered-By: ASP.NET


    Thanks
      The server says
      WWW-Authenticate: NTLM

      to which LWP adds

      Client-Warning: Unsupported authentication scheme 'ntlm'

      Use LWP::Authen::Ntlm as I previously mentioned.

      It looks like it also supports the less secure Basic authentication. But since you need to provide the credentials using the credentials method either way, use the more secure ::Ntlm.

      PS - On PerlMonks, you'll save yourself trouble by placing computer text (code, data, output) in <c>...</c> tags. They handle line breaks and escaping of special characters for you.

        Hi,
        I included the module LWP::Authen::Ntlm in my code but i am getting an error "Can't locate Authen/NTLM.pm in @INC". But i checked that the file Ntlm.pm is present under LWP/Authen folder. Please advice