Вызов неопределенного метода GuzzleHttp\Psr7\Response::isSuccessful()

Поэтому я установил библиотеку Guzzle версии 6 в соответствии с документацией по календарю TeamUp. . Однако, когда я пытаюсь запустить код ниже, я получаю

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":{ ... }}
}

Не должно содержаться в библиотеке? Кто угодно?


person bmm    schedule 24.08.2016    source источник


Ответы (2)


Да, метода isSuccessful нет. По умолчанию Guzzle выдает исключение, если сервер возвращает ошибку

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

Исключение GuzzleHttp\Exception\ServerException выдается для ошибок уровня 500, если для параметра запроса http_errors установлено значение true.

GuzzleHttp\Exception\ClientException генерируется для ошибок уровня 400, если для параметра запроса http_errors установлено значение true.

В случае сетевой ошибки (время ожидания подключения, ошибки DNS и т. д.) генерируется исключение GuzzleHttp\Exception\RequestException.

В любом случае, вы можете проверить код состояния ответа, используя

$res->getStatusCode();
person po_taka    schedule 24.08.2016

В примечания по обновлению Guzzle 5.0 до Guzzle 6.0 говорится:

GuzzleHttp\Message\Response::isSuccessful() и другие связанные методы были удалены. Вместо этого используйте getStatusCode().

person Matt Gibson    schedule 16.08.2017