Laravel-将请求重定向到外部网址并返回其响应作为响应

时间:2019-07-24 10:08:34

标签: php laravel api

我正在使用Laravel构建一个应用程序,以为Android应用程序提供一些API,并且我正在使用来自另一台服务器(具有另一个URL)的一些外部API。我想为android端的外部API请求制作代理或隧道之类的内容,但使用自己的URL。

例如: android要请求 externalUrl.com/api/objects ,但我希望他请求此 myDOmain.com/api/x/objects 并获得与第一个链接返回,没有任何更改。 而且有多个外部API,我不想为每个API编写单独的代码。

需要这样的东西:

Route::any('/x/{somewhere}', function($request){
return [$request, externalUrl.com/api/{somewhere}]->response;
})

我不要求http请求库!我想将请求重定向到另一个域并返回其请求。

2 个答案:

答案 0 :(得分:0)

您可以使用Guzzle:

use Guzzle\Http\Client;
use Guzzle\Stream\PhpStreamRequestFactory;
[...]
$request = new Client("externalUrl.com/api/{$somewhere}");

$response = $request->send();
return $response->getBody();

答案 1 :(得分:0)

最好的选择是安装Guzzle。 https://github.com/guzzle/guzzle

使用起来非常简单。

$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'externalUrl.com/api/{somewhere}');

return $response->getBody();