I've had this problem for a long time and I am in a sort of a dead-end and
could use some help. When I make a get request using the LWP UserAgent
inside a function and I pass a URL to the function as a string I get a
response. However, when I pass a variable that contains the URL (typically a
hash value) I get a return code of 501. I'm just not able to figure out why.
I'm giving the example code of the working code and Non-working code. Any
help will be deeply appreciated.

Thanks in advance.

-----------------------
#Working code

#!/usr/bin/perl
use strict;
use LWP::UserAgent;
my $url = "http://rajeshd";;
                    
print_page ( $url );

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";
}
-----------------------
#Failing code

#!/usr/bin/perl
use strict;
use LWP::UserAgent;
use XML::Simple;

my $config = XMLin( "C:/config.xml", VarAttr => 'name',
                    ContentKey => '-content' );

my $url = $config->={URL_1}; #$config->{URL_1} equals http://rajeshd at
run-time
                    
print_page ( $url );

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";
}

Rajesh Dorairajan 

Reply via email to