拉拉维尔 | PHP | 如何使用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


使用 Body > Row > JSON APP 和一个简单的表格:`


[{

    "type_3": "Hero",

 }]

在 Postman 中执行 URL 时,echo 没有任何反应 $json_dat


我期待的是:带有 type_3 的 Json 数据:Hero


先感谢您

http://img4.mukewang.com/61a9d8a30001c6da14690696.jpg

动漫人物
浏览 225回答 3
3回答

炎炎设计

正如柯蒂斯所说,您需要做的第一件事是将路线从 更改get为post。接下来,您要使用正确的Content-Type:application/json标头发送有效的 json 请求正文:{      "type_3":"Hero"    }在控制器本身中,您不需要手动检索输入,因为 Laravel 足够智能,能够为您捕获和解析 json。您可以访问使用请求对象的值$request->input('type_3')或$request->all()或更多的功能,为了这个目的,例如json(),post()等等。希望你能以此为依据。

茅侃侃

很简单,您期待的是 GET 请求而不是 POST。改变Route::get('/receive','MyController@Receive');到Route::post('/receive','MyController@Receive');

一只斗牛犬

使用 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 }
打开App,查看更多内容
随时随地看视频慕课网APP