in reply to Help with LWP::UserAgent server error 500

To elaborate on PodMaster's reply, change the second line of your script to something like this

my $ua = LWP::UserAgent->new( agent => 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.6) Gecko/2 +0050223 Firefox/1.0.1' );
The argument to the agent option determines the type of HTTP client that $ua will represent itself as. For the sake of illustration, I used the string corresponding to my version of Firefox. The exact version of Firefox is probably not important, but if you want to match it exactly to the one for your browser, or more generally, if you want to know how to best replicate what your Firefox browser is telling the server, get yourself the LiveHTTPHeaders extension for Firefox. This extension pops up a window showing exactly the conversation between your browser and the server, which you can then replicate with your script.

the lowliest monk

Replies are listed 'Best First'.
Re^2: Help with LWP::UserAgent server error 500
by ezekiel (Friar) on Jun 30, 2005 at 23:54 UTC

    Thanks for all the offers of help. Starting with the thoughts in this response I have made some progress. I now have:

    my $URL = "http://target.site.com/path/to/file.gz"; my $ua = LWP::UserAgent->new( agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050 +511 Firefox/1.0.4' ); $ua->proxy(['http'], 'http://my.proxy.server/proxy.pac'); my $response = $ua->get("$URL"); if ($response->is_success) { print $response->content; } else { die $response->status_line; }

    I put in the proxy server, based on the automatic proxy configuration URL I use in FireFox for HTTP. Once I did this, the 500 error went away to be replaced by a 404 Not Found error!

    I check the URL, by cut and paste into browser, so that is OK. And I also changed the URL to a different file on an FTP site and that works OK. So the problem appears to be HTTP specific. Any further thoughts? And am I using that proxy call correctly?

    Thanks