tests: add a simple web client written in perl.

This should be one of the test tools for writing our testsuite.

This can be used to make direct connects to web servers like so:

webclient.pl server_ip:port /path/file.html

and to make requestis via a proxy like this:

webclient.pl proxy_ip:port http://webserver:port/path/file.html

Michael
This commit is contained in:
Michael Adam 2009-09-10 01:15:01 +02:00
parent a39d7cd8d8
commit 158f8a7e15

46
tests/scripts/webclient.pl Executable file
View File

@ -0,0 +1,46 @@
#!/usr/bin/perl -w
# Simple command line web client.
# Initially loosely based on examples from the perlipc manpage.
#
# Copyright (C) 2009 Michael Adam
#
# License: GPL
use strict;
use IO::Socket;
my $EOL = "\015\012";
my $BLANK = $EOL x 2;
unless (@ARGV > 1) {
die "usage: $0 host[:port] document ...";
}
my $host = shift(@ARGV);
my $port = "http(80)";
if ($host =~ /^([^:]+):(.*)/) {
$port = $2;
$host = $1;
}
foreach my $document (@ARGV) {
my $remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $host,
PeerPort => $port,
);
unless ($remote) {
die "cannot connect to http daemon on $host (port $port)";
}
$remote->autoflush(1);
print $remote "GET $document HTTP/1.0" . $BLANK;
while (<$remote>) {
print;
}
close $remote;
}