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