3

所以我根据TeamUp 日历文档安装了 Guzzle 库版本 6 。但是,当我尝试运行下面的代码时,我得到

Fatal error: Call to undefined method GuzzleHttp\Psr7\Response::isSuccessful()  

代码:

<?php
include 'vendor/autoload.php';

define('API_KEY','****ww9d5ea2b0540ba1e02c08100b0e5**');

$client = new GuzzleHttp\Client(['headers' => ['Teamup-Token' => API_KEY]]);
$res = $client->get('https://api.teamup.com/ks************/events?startDate=2016-08-21&endDate=2016-08-25');

if ($res->isSuccessful()) {
    echo $res->getBody();
    // {"event":{ ... }}
}

不应该包含在库中吗?任何人?

4

2 回答 2

2

是的,没有方法isSuccessful。默认情况下,如果服务器返回错误,Guzzle 将抛出异常

http://docs.guzzlephp.org/en/latest/quickstart.html

如果 http_errors 请求选项设置为 true,则会针对 500 级错误引发 GuzzleHttp\Exception\ServerException。

如果 http_errors 请求选项设置为 true,则会针对 400 级错误抛出 GuzzleHttp\Exception\ClientException。

如果发生网络错误(连接超时、DNS 错误等),则会抛出 GuzzleHttp\Exception\RequestException。

无论如何,您可以使用检查响应的状态代码

$res->getStatusCode();
于 2016-08-24T06:19:37.190 回答
0

从 Guzzle 5.0 到 Guzzle 6.0的升级说明说:

GuzzleHttp\Message\Response::isSuccessful() 等相关方法已被移除。请改用 getStatusCode()。

于 2017-08-16T13:04:02.397 回答