David,

I tried this out. Still no luck. Then I tried a small vairation of your
code:

    my ( $Host, $Port ) = @_;
    my $url = $Host;
    $url .= ":$vesPort" if ( $vesPort && $vesPort != 80 );

This works!!!! Apparently LWP does not like it when the default port is
specified in the GET requests in some circumstances. But it works fine if I
hard-code the $url = "http://servername:80";. I am not sure if this is a bug
in the latest version of LWP. I've version 5.72

Thanks anyway. Also, thanks drieux to your suggestions too.

Rajesh

-----Original Message-----
From: david [mailto:[EMAIL PROTECTED]
Sent: Monday, November 10, 2003 3:19 PM
To: [EMAIL PROTECTED]
Subject: Re: Peculiar problem using LWP::UserAgent


Rajesh Dorairajan wrote:

> I ran into peculiar problem using LWP::UserAgent. I receive a 501 - Not
> yet implemented error when I connect to a web-server using the User-Agent.
> This happens when I pass in the Hostname and Portnumber as parameters in
> my function. However, if I hard-code the Server-name and port number it
> seems to work fine. I've included the piece of causing the problem below.
> Does anyone have suggestion why this is happening?
> 
> 
>     my ( $Host, $Port ) = @_;
>     my $url = "$Host:$Port";             #Does not work
>     #my $url = "http://servername:80";    #This works
>     
>     require LWP::UserAgent;
>     my $ua = LWP::UserAgent->new(env_proxy => 0,
>                               keep_alive => 0,
>                               timeout => 30,
>                              );
> 
>     $response = $ua->get( $url );
>

are you sure you construct the right path? for example:

#!/usr/bin/perl -w
use strict;

use LWP::UserAgent;

sub print_page{

        my($host,$port) = @_;

        my $url = $host;

        $url .= ":$port" if($port);

        my $ua = LWP::UserAgent->new(env_proxy  => 0, 
                                     keep_alive => 0, 
                                     timeout    => 30);

        my $r = $ua->request(HTTP::Request->new(GET => $url));

        print $r->content if($r->is_success);
        print $r->code,': ',$r->status_line unless($r->is_success);
        print "\n";
}

print_page('http://google.com');    #-- works fine
print_page('http://google.com',80); #-- works fine
print_page('google.com');           #-- 400: URL must be absolute
print_page('google.com',80);        #-- 501: Protocol not supported

__END__

you are most likely seeing the last one. make sure you specify the protocol.

david
-- 
$_=q,015001450154015401570040016701570162015401440041,,*,=*|=*_,split+local$
";
map{~$_&1&&{$,<<=1,[EMAIL PROTECTED]||3])=>~}}0..s~.~~g-1;*_=*
#,

goto=>print+eval

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to