HTTP-Request-Form
view release on metacpan or search on metacpan
return $self->{'referer'};
}
}
sub press {
my ($self, $button, $bnum, $bnum2) = @_;
my $x = 2;
my $y = 2;
if (ref $bnum) {
$x = $bnum->[0];
$y = $bnum->[1];
$bnum = $bnum2;
}
my @array = ();
foreach my $i ($self->allfields) {
if ($self->field_type($i) eq "input/checkbox") {
if ($self->checkbox_ischecked($i)) {
push @array, $i;
push @array, $self->field($i);
}
} elsif ($self->field_type($i) eq "select") {
if (defined($self->field($i))) {
push @array, $i;
push @array, $self->field($i);
}
} elsif ($self->field_type($i) eq "input/file") {
push @array, $i;
push @array, [ $self->field($i) ];
} else {
push @array, $i;
push @array, $self->field($i);
}
}
if (defined($button)) {
die "Button $button not included in form"
if (!defined($self->button($button)));
if (defined($bnum)) {
if (@{$self->button_type($button)}[$bnum] eq "image") {
push @array, $button . '.x', $x;
push @array, $button . '.y', $y;
} else {
push @array, $button, @{$self->button($button)}[$bnum];
}
} else {
if (@{$self->button_type($button)}[0] eq "image") {
push @array, $button . '.x', $x;
push @array, $button . '.y', $y;
} else {
push @array, $button, @{$self->button($button)}[0];
}
}
}
my $url = url $self->link;
if (defined($self->base)) {
$url = $url->abs($self->base);
}
if ($self->{'debug'}) {
print $self->method, " $url ", join(' - ', @array), "\n";
}
if ($self->{'isindex'}) {
$url->query_keywords( $self->{'fieldvals'}->{'keywords'} );
return GET $url;
} elsif (uc($self->method) eq "POST") {
my $referer = $self->referer;
if ($self->{'upload'}) {
if (defined($referer)) {
return POST $url, Content_Type => 'form-data',
'referer' => $referer,
Content => \@array;
} else {
return POST $url, Content_Type => 'form-data',
Content => \@array;
}
} else {
if (defined($referer)) {
return POST $url, 'referer' => $referer,
Content => \@array;
} else {
return POST $url, \@array;
}
}
} elsif (uc($self->method) eq "GET") {
$url->query_form(@array);
return GET $url;
}
}
sub dump {
my $self = shift;
print "FORM METHOD=", $self->method, "\n ACTION=", $self->link, "\n BASE=", $self->base, "\n";
foreach my $i ($self->allfields) {
if (defined($self->field($i))) {
print "FIELD{", $self->field_type($i), "} $i=", $self->field($i), "\n";
} else {
print "FIELD{", $self->field_type($i), "} $i\n";
}
if ($self->is_selection($i)) {
print " [", join(", ", @{$self->field_selection($i)}), "]\n";
}
}
foreach my $i ($self->buttons) {
if (defined($self->button($i))) {
print "BUTTON $i=[", join(", ", map {$_ ? $_ : "<undef>"} @{$self->button($i)}), "]\n";
} else {
print "BUTTON $i\n";
}
if (defined($self->button_type($i))) {
print " $i={", join(", ", @{$self->button_type($i)}), "}\n";
}
}
print "\n";
}
1;
__END__
=head1 NAME
HTTP::Request::Form - Construct HTTP::Request objects for form processing
( run in 1.344 second using v1.01-cache-2.11-cpan-754626df90b )