venkatesan_G02 has asked for the wisdom of the Perl Monks concerning the following question:

yeah i can use this link in web browse and am able to launch the page. But if i try to access it via WWW::Mechanze or LWP::UserAgent module i am not getting any page. Also, this page does not ask for any user credentials while logging in. They take my username directly from the system.

Replies are listed 'Best First'.
Re: WWW::Mechanize Problem
by ikegami (Patriarch) on Apr 06, 2009 at 20:34 UTC

    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).

      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.

Re: WWW::Mechanize Problem
by Herkum (Parson) on Apr 06, 2009 at 19:12 UTC

    There are two potential problems. Either A) The server does not recognize the machine/browser and decided to deny you access. B) You need to set authentication credentials for your WWW::Mechanize session. You should look at LWP::UserAgent on how to set those credentials (as Mechanize inherits functionality from the UserAgent module).

      Hi, Thanks for the reply. Actually the site does not ask for any username or password. It takes the username from my login in to my PC.So, i dont know a way to provide username and password for such a site. Could you suggest a way, please?

        He just did. Though it sounds like you have a more complicated environment setup than adding in basic auth credentials is going to address. You might need some proxy magic if your authentication is really automatic outside of Mech. The problem isn't well enough defined to know what's going on though.

Re: WWW::Mechanize Problem
by Anonymous Monk on Apr 06, 2009 at 17:00 UTC
    You are not authorized sends a strong message.
Re: WWW::Mechanize Problem
by VinsWorldcom (Prior) on Apr 06, 2009 at 17:11 UTC

    Are you able to view the page by just putting that URL into a browser?

    This sounds like a Web Server permission issue rather than a Perl module issue.

      yeah i can use this link in web browse and am able to launch the page. But if i try to access it via WWW::Mechanze or LWP::UserAgent module i am not getting any page. Also, this page does not ask for any user credentials while logging in. They take my username directly from the system.