执行从 Laravel 到外部 API 的 HTTP 请求

2022-08-30 06:27:05

我想要的是使用HTTP(例如,jQuery的AJAX)请求从API获取对象到外部API。我该如何开始?我对谷歌先生进行了研究,但我找不到任何帮助。

我开始怀疑这是否可能?在这篇文章中,Laravel 4从控制器到外部URL的发布请求,数据看起来可以完成。但是没有示例也没有任何来源可以找到一些文档。

请帮帮我?


答案 1

基于对类似问题的答案:https://stackoverflow.com/a/22695523/1412268

看看咕噜咕噜

$client = new GuzzleHttp\Client();
$res = $client->get('https://api.github.com/user', ['auth' =>  ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....

答案 2

我们可以在Laravel中使用pack Guzzle,它是一个PHP HTTP客户端来发送HTTP请求。

您可以通过作曲家安装Guzzle

composer require guzzlehttp/guzzle:~6.0

或者,您可以将 Guzzle 指定为项目现有 composer.json 中的依赖项

{
   "require": {
      "guzzlehttp/guzzle": "~6.0"
   }
}

使用 Guzzle 的 laravel 5 中的示例代码如下所示,

use GuzzleHttp\Client;
class yourController extends Controller {

    public function saveApiData()
    {
        $client = new Client();
        $res = $client->request('POST', 'https://url_to_the_api', [
            'form_params' => [
                'client_id' => 'test_id',
                'secret' => 'test_secret',
            ]
        ]);
        echo $res->getStatusCode();
        // 200
        echo $res->getHeader('content-type');
        // 'application/json; charset=utf8'
        echo $res->getBody();
        // {"type":"User"...'
}

推荐