On Fri, 1 Nov 2002, Sumitro Chowdhury wrote:
> Hmmmm....
> I thought POST request handling needs
> $r->read($buf,$r->headers_in->{'Content-length'})
> and GET request handling needs
> $r->args();
Sorry about that - I should have read more carefully that
you were specifically referring to POSTed data -
my %args = $r->Apache::args;
is for GET requests. For POST, as is described in the
content() method of Apache::compat, for now one can use
$r->setup_client_block;
# return an error unless $r->should_client_block;
my $len = $r->headers_in->get('content-length');
my $buf;
$r->get_client_block($buf, $len);
my %args = map {
s/%([0-9a-fA-F]{2})/pack("c", hex($1))/ge;
$_;
} split /[=&;]/, $buf, -1;
Some of the issues regarding, in particular, using the
mod_perl-1-ish $r->args and $r->content in an array context
are discussed at
http://perl.apache.org/docs/2.0/user/compat/compat.html
But you do have a point that life will be easier when libapreq
is ready :)
--
best regards,
randy