如何使用Laravel 5.4从API端点检索JSON?
我有两个使用Laravel 5.4制作的项目:如何使用Laravel 5.4从API端点检索JSON?,laravel,api,laravel-5,Laravel,Api,Laravel 5,我有两个使用Laravel 5.4制作的项目: Prj-1是一个返回JSON的Restful API Prj-2是一个使用上述端点的网站 通过这种方式,我从Prj-1获得了以下端点: myAPI.com/city以JSON格式返回数据库中所有城市的列表 在Prj-2内,我有以下信息: Route: Route::get('/showCityAPItest','AddressController@getcity'); Controller: use Illuminate\Http\Reques
Route:
Route::get('/showCityAPItest','AddressController@getcity');
Controller:
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
...
public function getcity()
{
$request =Request::create('http://myAPI.com/city', 'GET');
$response = Route::dispatch($request);
dd($response);
}
如果我在浏览器中直接使用URL(),它就会工作。我可以像预期的那样看到JSON。
但是当我试图从Prj-2中检索它时,我在浏览器中看不到它
其实我明白了
404 Not Found
nginx/1.10.1 (Ubuntu)
我一直在关注这个,但我不知道我做错了什么
有什么帮助吗?您所指的答案是关于内部路线。对于这样的外部地址,您不能使用
请求
和路由
外观。相反,使用Guzzle()从第二个站点发送请求。您所指的答案是关于内部路由。对于这样的外部地址,您不能使用请求
和路由
外观。相反,使用Guzzle()从第二个站点发送请求。是的,@Joel Hinz是对的。请求将在同一个项目api端工作。
你需要使用GuzzleHttp。
第一步。使用composer安装guzzle。composer的Windows基本操作guzzle命令:
composer require guzzlehttp/guzzle
步骤2编写以下代码
public function getcity()
{
$client = new \GuzzleHttp\Client;
$data =$client->request('GET', 'http://myAPI.com/city', [
'headers' => [
'Accept' => 'application/json',
'Content-type' => 'application/json'
]
]);
$x = json_decode($data->getBody()->getContents());
return response()->json(['msg' => $x], 200);
}
是的,乔尔·辛兹是对的。请求将在同一个项目api端工作。 你需要使用GuzzleHttp。 第一步。使用composer安装guzzle。composer的Windows基本操作guzzle命令:
composer require guzzlehttp/guzzle
步骤2编写以下代码
public function getcity()
{
$client = new \GuzzleHttp\Client;
$data =$client->request('GET', 'http://myAPI.com/city', [
'headers' => [
'Accept' => 'application/json',
'Content-type' => 'application/json'
]
]);
$x = json_decode($data->getBody()->getContents());
return response()->json(['msg' => $x], 200);
}