Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

WWW::Mechanize - Could not connect to a server

by jesuashok (Curate)
on Mar 20, 2007 at 03:00 UTC ( #605624=perlquestion: print w/ replies, xml ) Need Help??
jesuashok has asked for the wisdom of the Perl Monks concerning the following question:

monks,

This is the first time I am trying some sample programs using WWW::Mechanize. I got this sample code from here

#!/usr/bin/perl -w use WWW::Mechanize; use Data::Dumper; use Storable; $url = 'http://www.census.gov/population/www/documentation/twps002 +7.html'; $m = WWW::Mechanize->new(); $m->get($url); $c = $m->content; print Dumper [ $c ];
I got the below Error :-
$VAR1 = [ '500 Can\'t connect to www.census.gov:80 (connect: Unknown e +rror) ' ];
But I could connect to the URL via web browser. Could anyone help me to resolve this issue ?



hmmm ....let me think what did I said

Comment on WWW::Mechanize - Could not connect to a server
Select or Download Code
Replies are listed 'Best First'.
Re: WWW::Mechanize - Could not connect to a server
by chargrill (Parson) on Mar 20, 2007 at 03:20 UTC

    Are you behind a proxy?

    If you are, WWW::Mechanize respects your $ENV{HTTP_PROXY} environment variable - you could try setting that in your program to whatever your browser is set to.

    Update: Just checked the Mech FAQ, How to use mech through a proxy might be of interest, too



    --chargrill
    s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
      I Don't know how to check whether my system uses Proxy, through Perl. because when I tried to
      print $ENV{HTTP_PROXY} , "\n";
      Prints nothing.
      But I could see a IP address set in Internet Explorer. Can I use that Ip as follows in my perl code ?
      $ENV{HTTP_PROXY} = "xx.xx.xx.xx:<port_number>";
      I am Sorry, if this questions annoy you.


      hmmm ....let me think what did I said

        It's been a while since I've tried to mech from inside a proxy. (Yes, I've just verbized the short name for WWW::Mechanize).

        Give that a shot, or try following the other suggestions frm the FAQ, for which you've already got the link above.

        If that fails (and I don't see how, since now you've confirmed you're behind a proxy) there are some other troubleshooting steps you can try near the end of the Mech FAQ, including checking $mech->status after every attempt to get something.



        --chargrill
        s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
Re: WWW::Mechanize - Could not connect to a server
by Preceptor (Chaplain) on Mar 20, 2007 at 11:44 UTC
    You've mentioned you're using a proxy.

    You need to set up WWW:Mechanize to use your proxy. Ideally, you'll use the in-built OS options, but as a shortcut (to check if this actually is your problem) then just use:

    my $mech = WWW::Mechanize -> new(); $mech -> http_proxy ( "Your_proxy_address:proxy_port" )
    I've also found enabling LWP debugging to be most useful when troubleshooting Mechanized scripts.
    use LWP::Debug qw(+);
      monks,

      #!/usr/bin/perl -w use WWW::Mechanize; use strict; use Data::Dumper; use Storable; my $url = 'http://www.census.gov/population/www/documentation/twps +0027.html'; my $m = WWW::Mechanize->new(); $m->http_proxy ( "proxy_address:proxy_port" );
      I tried the above code and got the error as follows :-
      Can't locate object method "http_proxy" via package "WWW::Mechanize" a +t l.pl lin e 11.
      Is there something wrong in the above Code. If so, could you add your valuable points.



      hmmm ....let me think what did I said
        If you had read the Documentation (which was pointed out to you by chargrill in the first reply to this thread) you would see that you have $m->http_proxy rather than $m->proxy. Again, if you are not sure about something why not read the documentation, it does not take that long does it?

        As a side note you can also use can to find out if a Method exists within an invocant:
        #!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; my $mech = WWW::Mechanize->new(); if ($mech->can("http_proxy")){ print "Mech can http_proxy\n"; }else{ print "Mech can't http_proxy\n"; } if ($mech->can("proxy")){ print "Mech can proxy\n"; }else{ print "Mech can't proxy\n"; }

        Hope this helps

        Martin
        There is no method http_proxy. If you RTFM you can discover the correct method.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://605624]
Approved by chargrill
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (15)
As of 2015-08-27 21:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The oldest computer book still on my shelves (or on my digital media) is ...













    Results (332 votes), past polls