use strict;
use HTTP::Proxy qw( :log );
use HTTP::Proxy::BodyFilter::simple;
use CGI::Util qw( unescape );
my $filter = HTTP::Proxy::BodyFilter::simple->new(
sub {
my ( $self, $dataref, $message, $protocol, $buffer ) = @_;
print STDOUT $message->method, " ", $message->uri, "\n";
my (@pairs) = split ( /[&;]/, $$dataref );
for (@pairs) {
my ( $param, $value ) = split ( '=', $_, 2 );
$param = unescape($param);
$value = unescape($value);
printf STDOUT " %-30s => %s\n", $param, $value;
}
}
);
my $proxy = HTTP::Proxy->new(@ARGV);
$proxy->push_filter( method => 'POST', request => $filter );
$proxy->start;