2017-02-05 98 views
0

我試圖從Swagger UI向我的服務器(流明)發出POST請求,但每次我只是得到一個空數組。

揚鞭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) { } 

但是,如果我有郵差送了同樣的要求,一切工作就好了:

/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"} ]" 
} 

我不明白我的問題,有人可以向我澄清一下嗎?

+0

打開郵遞員的請求,並要求它來生成代碼的請求。選擇cURL作爲語言並根據您的Swagger請求進行驗證 – Daniel

回答

0

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'