$client = new Client(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res;
返回此错误:
"Class 'SymfonyBridgePsrHttpMessageFactoryHttpFoundationFactory' not found"
我已经尝试在我的composer.json文件中包含"symfony/psrhttp消息桥":"0.2">
您需要得到答案的正文:
$client = new GuzzleHttpClient(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res->getBody();
这是一个有点老的问题。然而,由于答案不能为我解决这个问题,所以在使用GuzzleHttp时,这里是最后一件要尝试的事情。
根据Laravel文件https://laravel.com/docs/5.3/requests#psr7-请求:
PSR-7标准为HTTP消息指定接口,包括请求和响应。如果您想获得PSR-7请求的实例而不是Laravel请求,则首先需要安装几个库。Laravel使用Symfony HTTP消息桥组件将典型的Laravel请求和响应转换为PSR-7兼容的实现:
composer require symfony/psr-http-message-bridge
composer require zendframework/zend-diactoros
这解决了我的问题。
编辑-------
正如意见中所建议的,放弃了zendframework/zend-diactoros
包。那么最好使用备用。
Symfony PSR7 Bridge建议:
composer require nyholm/psr7
或Laminas Diactoros Github包:
composer require laminas/laminas-diactoros
您需要使用composer安装以下额外的symfony组件。
composer require symfony/psr-http-message-bridge
composer require nyholm/psr7
https://symfony.com/doc/..
首先删除guzzle包:composer remove guzzlehttp/guzzle
然后执行:
composer dump-autoload
最后重新安装:
composer require guzzlehttp/guzzle
还要确保您使用的是guzzle名称空间:
use GuzzleHttpClient;
您正在实例化一个客户端,但似乎没有显式地实例化该类。试试这个:
$client = new GuzzleHttpClient(['base_uri' => 'http://api.tvmaze.com/']);
$res = $client->request('GET', '/schedule?country=US&date=2014-12-01');
return $res;