Hi Joe,

That's really helpful, thanks.
Actually finding out what the error message is nice:

HTTP Error : 500 Can't connect to www.npr.org:80 (connect: Permission denied)

I've tried this with a few websites and always get the same error, which tells 
me that the problem is on my server side. Any idea what I can change so I don't 
get a permission-denied rejection? I'm not even sure what system I should be 
looking at.

I tried Vishwam's suggestion of granting 777 permissions to both the file and 
the directory and I get the same response. 

Is there some Apache setting someplace that says "hey, don't you go making web 
calls while I'm in charge"? 

(This is a Fedora server running Apache, btw). 

I don't know what to poke at!

Ken


-----Original Message-----
From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Joe 
Hourcle
Sent: Monday, November 23, 2009 2:29 PM
To: CODE4LIB@LISTSERV.ND.EDU
Subject: Re: [CODE4LIB] calling another webpage within CGI script


I'd suggest testing the results of the call, rather than just looking for 
content, as an empty response could be a result of the server you're 
connecting to.  (unlikely in this case, but it happens once in a while, 
particularly if you turn off redirection, or support caching). 
Unfortunately, you might have to use LWP::UserAgent, rather than 
LWP::Simple:

        #!/bin/perl --

        use strict; use warnings;
        use LWP::UserAgent;

        my $ua = LWP::UserAgent->new( timeout => 60 );

        my $response = $ua->get('http://www.npr.org/');
        if ( $response->is_success() ) {
                my $content = $response->decoded_content();
                ...
        } else {
                print "HTTP Error : ",$response->status_line(),"\n";
        }

        __END__

(and changing the shebang line for my location of perl, your version 
worked via both CGI and command line)


oh ... and you don't need the foreach loop:

        my $i = @lines;

-Joe

Reply via email to