使用Laravel从API获取JSON响应

时间:2014-07-24 14:10:25

标签: php json laravel laravel-4 response

我只是搞乱了API,现在我正在尝试在我的应用中使用Google Directions API

我创建了一个表单来获取用户的输入并检索此数据并在routes.php文件中创建URI:

Route::get('/directions', function() {
    $origin = Input::get('origin');
    $destination = Input::get('destination');

    $url = "http://maps.googleapis.com/maps/api/directions/json?origin=" . $origin . "&destination=" . $destination . "&sensor=false";
});

该URL的响应是JSON。但是现在,我怎么能与Laravel一起存储这个回复?我一直在看Laravel中的Http命名空间,但我找不到方法。如果不能用Laravel完成,怎么用普通的PHP来完成?

3 个答案:

答案 0 :(得分:8)

您可以使用file_get_contents()

Route::get('/directions', function() {
    $origin = Input::get('origin');
    $destination = Input::get('destination');

    $url = urlencode ("http://maps.googleapis.com/maps/api/directions/json?origin=" . $origin . "&destination=" . $destination . "&sensor=false");

    $json = json_decode(file_get_contents($url), true);

    dd($json);
});

答案 1 :(得分:1)

看一下我的包

https://github.com/joshhornby/Http

希望能够更轻松地调用API

答案 2 :(得分:0)

你可以试试这一步...

设置路线...

Route::get('/json', [yourController::class, 'getJSON']);

以及获取json格式值的方法

public function getJSON(Request $request)
{

    $url = 'https://api******';

    $response = file_get_contents($url);
    $newsData = json_decode($response);


    return response()->json($newsData);         

}