Home

Search this site:
 

Horshack’s
very
own site

 

This is Bavaria, Germany!
You will find links to Perl,
bootdisks for system administration,
a lot of Linux,
Windows administration
and some personal belongings.

Dealing with http


Getting a webpage through a proxy-server

use LWP::UserAgent;

my $html = getwww(
    url   => $url,
    proxy => 'http://proxy.mydomain:3128',
    # you can leave this out:
    proxy_user => undef,
    proxy_pass => undef,
);

sub getwww {

    # call me like this:
    # &getwww(url=>$url,proxy=>$proxy,
    #       proxy_user=>$proxy_user,proxy_pass=>$proxy_pass);
    # Argumente are optional, except URL
    my (%args) = @_;
    my ( $url, $proxy, $proxy_user, $proxy_pass ) =
      @args{ "url", "proxy", "proxy_user", "proxy_pass" };
    my $content;
    my $ua = LWP::UserAgent->new;
    if ($proxy) {
        # set proxyserver if there is one
        $ua->proxy( "http", $proxy );
    }
    my $request = HTTP::Request->new( 'GET', $url );

    # set proxy-authentication if there is one
    if ($proxy_user) {
        $request->proxy_authorization_basic( $proxy_user, $proxy_pass );
    }
    my $response = $ua->request($request);
    if ( $response->is_error() ) {
        $content = sprintf( "Error while requesting URL $url: %s\\n",
            $response->status_line );
    }
    else {
        $content = $response->content();
    }
    return $content;
}
Impressum