[英]Laravel | PHP | How to use file_get_contents?
我想学习并了解如何使用从外部服务器发送到laravel项目的数据。
所以我走了这条路:
Route::get('/receive','MyController@Receive');
在控制器中,我做到了:
public function Receive(Request $request){
$data = file_get_contents("php://input");
$json_dat = json_decode($data, true);
echo $json_dat;
}
使用POSTMAN,我将POST请求发送到` http:// my_domain / receive
使用“正文”>“行”>“ JSON APP”和一个简单的表格:
[{
"type_3": "Hero",
}]
在Postman中执行URL时,echo $json_dat
没有任何$json_dat
我期望的是:带有type_3的Json数据:英雄
先感谢您
很简单,您期望的是GET请求而不是POST。
更改
Route::get('/receive','MyController@Receive');
至
Route::post('/receive','MyController@Receive');
正如Curtis所说的,您要做的第一件事就是更改从get
到post
的路线。
接下来,您要发送带有正确Content-Type
有效json请求正文: application/json
标头:
{
"type_3":"Hero"
}
在控制器本身中,您不需要手动检索输入,因为Laravel足够聪明,可以为您捕获和解析json。
您可以使用请求对象$request->input('type_3')
或$request->all()
或用于此目的的更多函数json()
例如json()
, post()
等post()
。
希望您能以此为基础。
使用帖子代替进入路由器
Route::post('/receive','MyController@Receive');
在控制器中
public function Receive(Request $request){
$request->json('type_3'); // hero get from json
$request->input('type_3'); // get from input
return $request->all(); //return all input,request or json and vs vs
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.