joh*_*s12 9 php laravel guzzle
$client = new Client(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res;
Run Code Online (Sandbox Code Playgroud)
返回此错误:
"Class 'Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory' not found"
Run Code Online (Sandbox Code Playgroud)
我试过在我的 composer.json 文件中包含“symfony/psr-http-message-bridge”:“0.2”
小智 11
您需要获取答案的正文:
$client = new \GuzzleHttp\Client(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res->getBody();
Run Code Online (Sandbox Code Playgroud)
这是一个有点老的问题。但是,由于答案无法为我解决,这是使用 Guzzle Http 时要尝试的最后一件事。
根据 Laravel 文档https://laravel.com/docs/5.3/requests#psr7-requests:
PSR-7 标准规定了 HTTP 消息的接口,包括请求和响应。如果你想获得 PSR-7 请求的实例而不是 Laravel 请求,你首先需要安装一些库。Laravel 使用 Symfony HTTP Message Bridge 组件将典型的 Laravel 请求和响应转换为 PSR-7 兼容的实现:
composer require symfony/psr-http-message-bridge
composer require zendframework/zend-diactoros
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题。
编辑 - - - -
正如评论中所建议的,该软件包zendframework/zend-diactoros已被放弃。那么最好使用替代品。
composer require nyholm/psr7
Run Code Online (Sandbox Code Playgroud)
composer require laminas/laminas-diactoros
Run Code Online (Sandbox Code Playgroud)
您需要使用 composer 安装以下额外的 symfony 组件。
composer require symfony/psr-http-message-bridge
composer require nyholm/psr7
Run Code Online (Sandbox Code Playgroud)
首先删除 guzzle 包:composer remove guzzlehttp/guzzle
然后做:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
最后重新安装它:
composer require guzzlehttp/guzzle
还要确保您使用的是 guzzle 命名空间:
use GuzzleHttp\Client;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7262 次 |
| 最近记录: |