#!/usr/bin/perl
#request_demo.pl

use strict;

use CGI qw(-debug);
use CGI::Carp qw(fatalsToBrowser);

if ( $^O ne "MSWin32" ) {
    use lib "libwww-perl-5.62/lib";
}

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common;
use HTTP::Status;

my $response_body;

my $cgi = new CGI;

my $URL = $cgi->param('URL');

print $cgi->header();

if ($URL) {
    my $ua = new LWP::UserAgent;
    $ua->agent('Mozilla/5.0');
    $ua->timeout(180);

    my $request = new HTTP::Request( 'GET', qq{$URL} );

    my $response = $ua->request($request);
    $response_body = $response->content();

    if ( ( $response->code() != RC_OK ) ) {
        my $coder = $response->code();

		print "<pre>request as string: " . $request->as_string . "<br>\n";
		print "header: ". $response->header . "<br>\n";
		print "message: ". $response->message . "<br>\n";
		print "content: " . $response->content . "<br>\n";
		print "as string: " . $response->as_string . "<br>\n";

        print "Body:", $response_body, "<br>\n</pre>";
        die "Request failed with code $coder";
    }

    #Tables only
    #$response_body =~ s/(<\s*?table.*?border="?)0/${1}1/gs;

    #All borders
    $response_body =~ s/(border="?)0/${1}1/igs;
}

open HTML, "course/cgi_use/request_form.html"
  or die "Can't open request_form.html: $!\n";

while (<HTML>) {

    #Put the requested URL back into the input field
    s/name="URL" value=".*?"/name="URL" value="$URL"/;
    
    #Put the html from the response
    #into the body of the returned form
    s/<!-- response_body -->/$response_body/;

    print;
}

close HTML;