2014-09-24 36 views
0

我已經寫了一個休息服務應用程序。瘦身框架 - post方法如何工作?

我發送此JSON請求到服務:

POST /AndroidEvent/index.php/api/events HTTP/1.1 
Host: localhost 
Content-Type: application/json 
Cache-Control: no-cache 

{ "data": { "name": "ApiTest", "city": "Budapest", "place" : "Budapest 1082 Népszínház utca 18.", "event_start_date" : "2014-09-01 00:00:00", "event_end_date" : "2014-09-21 00:00:00", "decription" : "Ez egy leírás ide", "category_id" : 1, "owner_id": 2, "coord_latitude" : "47.4544", "coord_longitude" : "47.4544", "picture_path" : "http://localhost/picture_path", "is_adult" : 0, "created_on" : "2014-09-21 00:00:00", "updated_on" : "" } } 

但在服務器端的routes.php文件我不能以這種方式得到這個職位數據:

$app->request->post('data') // I will get an empty array. 

但在這樣我就可以得到帖子數據:

json_decode($app->request->getBody()); 

是不可能用得到帖子數據?

回答

3

您正在使用POST http方法在http請求正文中發送json字符串。所以爲了閱讀它正確的方法是json解碼身體然後繼續。就像你這樣做json_decode($app->request->getBody());

method="post"編碼輸入Web表單的查詢字符串,然後把那於一體。以這種方式發送的變量可以通過訪問$app->request->post(<input_name>);

我覺得這裏的困惑是,在$app->request->post(<input_name>);後實際上指的是PHP的$ _POST超全球,它自動爲您保存解碼查詢stirng。它與http方法(動詞)POST不同。

http://docs.slimframework.com/#Request-Variables