流明$ request-> all()返回空数组

时间:2017-02-05 15:36:24

标签: http curl swagger swagger-ui lumen

我试图从Swagger UI向我的服务器(Lumen)发出POST请求,但每次我只是得到一个空数组。

Swagger UI请求:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{   \ 
"stocks":[   \ 
   {   \ 
      "contract-number":0, \ 
      "metal-id":0, \ 
      "amount":0, \ 
      "unit":"string" \ 
   } \ 
] \ 
}' 'http://backend.mywebsite.de/v1/stocks'

我的控制器:

...
public function stocksPost(Request $request)
{
        dd($request->all());
}
...

输出:

/var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23:
array(0) { }

但如果我向Postman发送相同的请求,一切正常:

    /var/www/vhosts/localhost/htdocs/vendor/illuminate/support/Debug/Dumper.php:23:
array(1) {
  'stocks' =>
  string(68) "[{"contract-number": 0,"metal-id": 0,"amount": 0,"unit": "string"} ]"
}

我没有解决我的问题,有人可以向我澄清一下吗?

1 个答案:

答案 0 :(得分:1)

Swagger请求的问题在于它以双引号发送我的数据,因为它不能被验证为JSON,并且只能从php://输入作为字符串获得。我只是使用自己的curl请求解决了这个问题,我将JSON数据放入单引号中或将其作为外部文件附加。

curl -X POST -d @foo/bar/contractsPayload.json http://backend.mywebsite.de/v1/stocks -H 'Content-Type: application/json' -H 'Accept:application/json'