Azure功能应用程序 - PHP $ _GET / $ _POST / $ _REQUEST

时间:2017-07-02 10:39:21

标签: php azure azure-cosmosdb azure-functions

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

我已经尝试了通常的var_dump和那些收集数据的差异。包括,当将HTTP请求集成为输入时,将变量定义为“req”。

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

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

2 个答案:

答案 0 :(得分:1)

没有得到回复,所以一直在调查。它似乎是默认的" req"在使用file_get_contents(getenv('req'))

时,value仅在POST请求中提供请求正文

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

你应该找到var_dump($_SERVER)它所需的一切,但你得到了你需要的价值。如果其他人找到更优雅的方式来获得价值,请发布。

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

答案 1 :(得分:0)

您可以通过引用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_<NAME>环境变量访问它们。