Как получить параметры запроса GET и POST для запроса POST? - PullRequest
1 голос
/ 27 октября 2011

Я создаю приложение для Facebook с бэкэндом Perl.Проблема заключается в том, что, поскольку Facebook отправляет запрос в мое веб-приложение в виде запроса POST, у меня возникла проблема с получением параметров GET, которые также были частью базового URL-адреса приложения - фактически я получаю только параметры POSTот $ CGI-> Vars.

Ответы [ 2 ]

13 голосов
/ 27 октября 2011

См. CGI / ПАРАМЕТРЫ ПОСТ И URL СМЕШИВАНИЯ .

Короткая версия: используйте $CGI->param() для пост-параметров и $CGI->url_param() для параметров строки запроса.

5 голосов
/ 28 октября 2011

Дамп CGI в пользу лучшего интерфейса. Метод Plack param возвращает смешанные параметры GET и POST.

plackup -MPlack::Request -e 'sub {
    my ($env) = @_;
    my $r = Plack::Request->new($env);
    return [200, ["Content-Type" => "text/plain"], [join "\n", $r->param("foo")]];
}'

> lwp-request -m POST -USe 'http://localhost:5000/fnord?foo=bar;baz=quux'
Please enter content (application/x-www-form-urlencoded) to be POSTed:
foo=123;baz=456
␄
POST http://localhost:5000/fnord?foo=bar;baz=quux
User-Agent: lwp-request/6.03 libwww-perl/6.03
Content-Length: 16
Content-Type: application/x-www-form-urlencoded

200 OK
Date: Thu, 27 Oct 2011 21:27:46 GMT
Server: HTTP::Server::PSGI
Content-Length: 7
Content-Type: text/plain
Client-Date: Thu, 27 Oct 2011 21:27:46 GMT
Client-Peer: 127.0.0.1:5000
Client-Response-Num: 1

bar
123
...