Solving: Guzzle errors truncated

David Carr

1 min read - 1st Jun, 2019

I'm a big fan of Guzzle it's great for making API calls.

My typical code when making calls looks like this:

use GuzzleHttp\Client;
use Exception;

try {
    $client = new Client;
    $response = $client->post($url, ['form_params' => $params]);
    return json_decode($response->getBody()->getContents(), true);
} catch (GuzzleHttp\Exception\ServerException $e) {
    return $e->getMessage();

That all works but when there is an error returned from the API the errors are truncated. Calling the usually $e->getMessage is not the correct way with Guzzle instead throw an exception with the same response call used for returned data.

throw new Exception($e->getResponse()->getBody()->getContents());
Add a comment

Copyright © 2006 - 2024 DC Blog - All rights reserved.