Black Friday sale is now on! 50% off Laravel: The Modular Way. Learn more

Solving: Guzzle errors truncated

David Carr


    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 (Exception $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());


    Laravel Modules Book by David Carr

    Help support the blog so that I can continue creating new content!

    Subscribe to my newsletter

    Subscribe and get my books and product announcements.

    © 2009 - 2022 DC Blog. All code MIT license. All rights reserved.