При отладке приложений с использованием http-клиента Guzzle возникает одно неудобство — отладчик не перехватывает сам запрос, а проходит мимо. Понять, что происходит в ходе запроса, порой проблематично.
Дело осложняется ещё и тем, что данные, которые можно вытащить из response, либо скудны, либо обрезаны (truncated…). Чтобы получить весь объём отладочной информации необходимо заключить код отправки запроса в try-catch, а $exception в блоке catch вывести как
(string)$exception->getResponse()->getBody()
Вот, например, как это можно сделать в yii2:
try {
$response = (new Client())->post(Url::to('/transaction/note', true), [
RequestOptions::COOKIES => CookieJar::fromArray($cookiesEncoded, \Yii::$app->request->hostName),
RequestOptions::FORM_PARAMS => $postData,
]);
} catch (BadRequestHttpException $exception) {
// Полный листинг проблемы
$result = (string)$exception->getResponse()->getBody();
}
Сам себе сисадмин Рабочие заметки о системном администрировании