Re: perl модуль, возвращение запроса на обработку nginx
Alexey Shilo
nginx-forum at nginx.us
Sat Nov 3 15:40:57 UTC 2012
Пока нашёл только один рабочий вариант: делать internal_redirect на другой
локейшен.
Есть ли менее череззаднепроходные методы реализовать мою задачу?
пока как-то так:
package onlyxml;
use nginx;
use strict;
use XML::Simple;
sub test {
my $r = shift;
if ($r->request_method eq "POST") {
if ($r->has_request_body(\&post)) {
$r->internal_redirect('/valid'.$r->uri);
} else {
return 401; # пустой запрос
}
} else {
#return DECLINED; # не GET запросы
$r->internal_redirect('/valid'.$r->uri);
}
}
sub post {
my $r = shift;
my $xs = new XML::Simple();
my $hash;
eval {$hash = $xs->XMLin($r->request_body)};
if ($@){
return 400; # не валидный
} else {
return 1; # Валидный xml
}
}
1;
__END__
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,232459,232485#msg-232485
Подробная информация о списке рассылки nginx-ru