【发布时间】:2019-04-27 16:37:07
【问题描述】:
我正在尝试使用 Guzzle 从 API 检索数据。我按照 Guzzle 网站中的步骤,使用 Composer 安装它,在控制器中添加路由和代码。
我尝试了这两个选项:
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://jsonplaceholder.typicode.com/',
// You can set any number of default request options.
'timeout' => 2.0,
]);
还有……
$client = new \GuzzleHttp\Client([
// Base URI is used with relative requests
'base_uri' => 'https://jsonplaceholder.typicode.com/',
// You can set any number of default request options.
'timeout' => 2.0,
]);
运行时出现错误...
找不到类“GuzzleHttp\Client”。
我试过了:
require( dirname( __FILE__ ) . '/../../../vendor/autoload.php');
use GuzzleHttp\Client;
在 composer.json 中:
"require": {
"guzzlehttp/guzzle": "^6.3",
...
},
还有……
composer update
composer dump-autoload
php artisan config:clear
项目在共享主机上;我注意到 /vendor 文件夹中没有 Guzzle 文件夹,所以我通过 FTP 上传。但还是同样的错误。
我已经尝试了我在论坛上找到的关于该主题的所有内容;我的想法不多了,请提供任何建议。 提前感谢您的宝贵帮助。
【问题讨论】:
-
Composer 安装没有帮助,对吧?你能做一个新的 laravel 应用程序并尝试在那里安装它。如果这可行,您当前的回购中有问题。我只是尝试在我的 ubuntu 机器上这样做,
use GuzzleHttp\Client; $c = new Client;工作正常。供应商中的文件夹也应该命名为“guzzlehttp”——假设这是一个错字。最后,你的锁文件的状态是什么? -
尝试
composer require guzzlehttp/guzzle而不是手动将其添加到文件中。它应该向您展示所有过程。 -
感谢您的回复,一开始我尝试了 composer require guzzlehttp/guzzle 但“guzzlehttp”文件夹未添加到共享主机中,因此必须使用 FTP 来完成。您提到的锁定文件是composer.lock?谢谢
-
我在本地服务器上完成了这个过程,它可以工作,问题出在共享主机上。我已经在共享主机上部署了一个 laravel 应用程序。我设法通过 SSH 连接服务器,但我害怕安装 composer 并导致应用程序损坏,我应该如何继续?
标签: laravel api composer-php guzzle laravel-artisan