Guzzle http усекает исключения с более чем 120 символами, но мне нужно зарегистрировать полное сообщение об исключении. Как я могу это сделать?
Я использую laravel 4.2.22.
Guzzle http усекает исключения с более чем 120 символами, но мне нужно зарегистрировать полное сообщение об исключении. Как я могу это сделать?
Я использую laravel 4.2.22.
То же самое для Laravel 5 и 4.
try {
$response = $client->post($path, $params);
} catch (\GuzzleHttp\Exception\RequestException $ex) {
\Log::debug('error');
\Log::debug((string) $ex->getResponse()->getBody());
throw $ex;
}
если вы просто перейдете к $ex->getMessage()
, вы получите (truncated...)
в конце.
Может быть лучшее решение:
try {
// do request here like:
// return $client->post($path, $params);
} catch (\GuzzleHttp\Exception\ServerException $ex) {
$exFactoryWithFullBody = new class('', $ex->getRequest()) extends \GuzzleHttp\Exception\RequestException {
public static function getResponseBodySummary(ResponseInterface $response)
{
return $response->getBody()->getContents();
}
};
throw $exFactoryWithFullBody->create($ex->getRequest(), $ex->getResponse());
}