Re: Разбор POST-запросов
Daniel Podolsky
onokonem на gmail.com
Пн Фев 8 19:43:05 MSK 2010
> Скажите, пожалуйста, есть ли возможность выделить интересующие аргументы POST-запроса (nginx/0.6.38)?
Можно получить запрос встроенным перлом, и в нем выделить все, что захочется.
В конфиге:
perl_modules /pathToYourModule;
perl_require YourModule.pm;
location = /postHere
{
if ($request_method != POST)
{
error_page 345 = @namedLocationToProcessGET;
return 345;
}
perl YourModule::checkPost;
}
В YourModule.pm
package YourModule;
use nginx;
sub checkPost($)
{
my $r = shift;
if (!$r->has_request_body(\&parsePost))
{
$r->log_error(0, "Post without body, not good");
return 400;
};
return OK;
};
sub parseAuth($)
{
my $r = shift;
my $body = $r->request_body || '';
# Ну и тут уже резвимся, как захотим.
};
Да, возможен вариант, когда тело ляжет в файл. Можно этого не
допускать, регулируя размер буфера и максимальный размер тела. А
можно, наоборот, этого потребовать, и использовать
$r->request_body_file.
Подробная информация о списке рассылки nginx-ru