【问题标题】:Azure Function App - PHP $_GET / $_POST / $_REQUESTAzure 函数应用程序 - PHP $_GET / $_POST / $_REQUEST
【发布时间】:2017-07-02 10:39:20
【问题描述】:

似乎没有任何明确的文档来收集对在 PHP 中运行的 Azure Functions 的 GET/POST 请求。

我已经尝试了常用的 var_dump 和方差来收集数据。包括,在将 HTTP 请求集成为输入时,将变量定义为“req”。

即使指定 $_REQUEST['req'] 似乎也不会将 POST/GET 数据加载到函数中。

顺便说一句,如果您碰巧知道如何将数据加载到集成的 DocumentDB 输出中,那同样会有所帮助。

【问题讨论】:

    标签: php azure azure-cosmosdb azure-functions


    【解决方案1】:

    没有得到回应,所以继续调查。使用file_get_contents(getenv('req'))时,似乎默认的“req”值仅在POST请求中提供请求正文

    如果您在 POST 或 GET 中查找实际请求参数,这尤其无用。

    您应该通过var_dump($_SERVER) 找到您需要的一切,这很乱,但您得到了您需要的值。如果其他人发现了一种更优雅的方式来实现这些价值观,请发帖。

    顺便说一句,转储到 DocumentDB 绑定可以通过以下方式完成: file_put_contents(getenv('VariableName'), "{ \"JSON\" : \"JSON Details\" } ");

    【讨论】:

      【解决方案2】:

      您可以通过引用REQ_QUERY_<NAME>/REQ_HEADERS_<NAME> 环境变量来访问请求参数/标头。例如:

      <?php
        /* request body */
        $body = file_get_contents(getenv('req'));
        $body = rtrim($body, "\n\r");
        fwrite(STDOUT, "PHP script processed request body '$body'\r\n");
      
        /* access query parameter 'test' */
        $test = getenv('req_query_test');
        fwrite(STDOUT, "Parameter Test='$test'\r\n");
      
        /* access header 'test' */
        $test = getenv('req_headers_test');
        fwrite(STDOUT, "Header Test='$test'\r\n");
      ?>
      

      同样,如果你的函数有路由参数,可以通过REQ_PARAMS_&lt;NAME&gt;环境变量访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 2010-09-26
        • 2010-09-11
        相关资源
        最近更新 更多