过去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()以上任何变量时,我都为空或无。
我在做什么错了?
答案 0 :(得分:1)
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$data = json_decode($request->getContent(), true);
}
您可以使用php://input
,但效率低下。