2017-07-02 29 views
1

似乎沒有任何明確的文檔來收集在PHP中運行的Azure函數的GET/POST請求。

我試過通常的var_dump和那些收集數據的差異。在將HTTP請求作爲輸入集成時,將變量定義爲「req」。

即使指定$ _REQUEST ['req']似乎也不會將POST/GET數據加載到函數中。另外,如果您碰巧知道如何將數據加載到一個集成的DocumentDB輸出中,那也同樣有幫助。

回答

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>環境變量訪問。

1

沒有得到答覆,所以不斷調查。看起來,默認的「req」值僅在使用時向POST請求提供請求正文file_get_contents(getenv('req'))

如果您在POST或GET中查找實際的請求參數,這特別沒有幫助。

你應該找到你需要的一切var_dump($_SERVER)它很混亂,但你得到你需要的值。如果其他人發現了一種更優雅的獲得價值觀的方式,請發佈。

順便說一下,傾倒到DocumentDB綁定可以通過; file_put_contents(getenv('VariableName'), "{ \"JSON\" : \"JSON Details\" } ");