Perl 如何在POST请求中同时获取get和POST请求参数?

Perl 如何在POST请求中同时获取get和POST请求参数?,perl,post,get,cgi,Perl,Post,Get,Cgi,我正在创建一个带有Perl后端的facebook应用程序。问题是,由于Facebook将请求作为POST请求发送到我的web应用程序,我在获取GET参数时遇到了问题,该参数也是应用程序的基本URL的一部分——实际上,我只从$CGI->VAR获取POST参数 见 简短版本:post参数使用$CGI->param(),查询字符串参数使用$CGI->url_param()。请参阅 简短版本:使用$CGI->param()作为post参数,使用$CGI->url_param()作为查询字符串参数。转储C

我正在创建一个带有Perl后端的facebook应用程序。问题是,由于Facebook将请求作为POST请求发送到我的web应用程序,我在获取GET参数时遇到了问题,该参数也是应用程序的基本URL的一部分——实际上,我只从$CGI->VAR获取POST参数

简短版本:post参数使用
$CGI->param()
,查询字符串参数使用
$CGI->url_param()

请参阅


简短版本:使用
$CGI->param()
作为post参数,使用
$CGI->url_param()
作为查询字符串参数。

转储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")]];
}'


转储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")]];
}'


只需设置

只需设置

问题是URL使用get参数跟踪应用程序状态,我想这个想法是不要混合使用get和post参数--除了它是RFC标准的一部分之外,我不明白为什么这很重要--它不会改变服务器上的任何内容,它只是检测要执行哪一步do@nodebunny,为什么重要?您的意思是“为什么使用不同的方法获取它们”?为了确保“在任何情况下,URL查询字符串的内容都不会干扰已发布表单中类似命名的CGI参数”。根据您所说,此功能对您来说应该特别重要。为什么要将GET和POST分开。。。但我想我理解其中的含义。您不希望将某个对象设置为GET param,并将其视为POST param,否则这会破坏拥有POST的目的,对吗?然而,出于我的目的,我只寻找特定的参数,所以我猜这是一个静音点。我需要的参数是get还是post都不重要。但我现在更了解情况了+1讨论问题是URL使用get参数来跟踪应用程序状态,我想我们的想法是不要混合使用get和post参数——除了它是RFC标准的一部分之外,我不明白为什么这很重要——它没有改变服务器上的任何内容,只是检测要执行哪一步do@nodebunny,为什么重要?您的意思是“为什么使用不同的方法获取它们”?为了确保“在任何情况下,URL查询字符串的内容都不会干扰已发布表单中类似命名的CGI参数”。根据您所说,此功能对您来说应该特别重要。为什么要将GET和POST分开。。。但我想我理解其中的含义。您不希望将某个对象设置为GET param,并将其视为POST param,否则这会破坏拥有POST的目的,对吗?然而,出于我的目的,我只寻找特定的参数,所以我猜这是一个静音点。我需要的参数是get还是post都不重要。但我现在更了解情况了+1供讨论