簡體   English   中英

在Symfony 2.3控制器中訪問POST請求的JSON正文

[英]Accessing JSON body of POST request in Symfony 2.3 controller

在過去的3個小時中,我嘗試將傳入的POST請求的JSON主體解析為我在Symfony 2.3.3中構建的API端點。

我無法為自己的一生弄清楚如何接近身體,這使我發瘋。 我的墓地里滿是我嘗試過的語法,但沒有一個起作用。 以下所有無效的內容。

張貼要求:

app_1    | Accept:          application/json
app_1    | Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
app_1    | Connection:      close
app_1    | Content-Length:  19
app_1    | Content-Type:    application/json
app_1    | Host:            localhost
app_1    | User-Agent:      Faraday v0.15.4
app_1    | X-Php-Ob-Level:  1
app_1    |
app_1    | {"hello":"goodbye"}

內部控制器默認操作(所有無效的操作):

        $request = $this->getRequest();
        $hello = $request->query->get('hello');
        $hello1 = $request->request->get('hello');
        $hello2 = $request->get('hello');

        $json2 = filter_input(INPUT_POST, 'hello', FILTER_DEFAULT);

每當我error_log()以上任何變量時,我都為空或無。

我究竟做錯了什么?

if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
      $data = json_decode($request->getContent(), true);
}

您可以使用php://input但是效率低下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM