From be503f52818f793050f05e1ba21bb7c8e2f43855 Mon Sep 17 00:00:00 2001 From: Frantisek Sichinger Date: Thu, 2 Nov 2017 15:14:55 +0100 Subject: [PATCH] Catch guzzle ClientException --- src/Http/JsonBrowser.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Http/JsonBrowser.php b/src/Http/JsonBrowser.php index f95b643..d237cb3 100644 --- a/src/Http/JsonBrowser.php +++ b/src/Http/JsonBrowser.php @@ -4,6 +4,7 @@ use GoPay\Http\Log\Logger; use GuzzleHttp\Client as GuzzleClient; +use GuzzleHttp\Exception\ClientException; class JsonBrowser { @@ -32,11 +33,23 @@ public function send(Request $r) $response = new Response((string) $guzzResponse->getBody()); $response->statusCode = (string) $guzzResponse->getStatusCode(); $response->json = json_decode((string) $response, true); - } catch (\Exception $e) { - $response = new Response($e->getMessage()); - $response->statusCode = 500; - } + $this->logger->logHttpCommunication($r, $response); + return $response; + } catch (ClientException $e) { + if ($e->hasResponse()) { + $response = new Response($e->getResponse()->getBody()); + $response->json = json_decode($e->getResponse()->getBody()); + $response->status_code = $e->getCode(); + $this->logger->logHttpCommunication($r, $response); + return $response; + } + } catch (\Exception $ex) { + $response = new Response($ex->getMessage()); + $response->status_code = 500; $this->logger->logHttpCommunication($r, $response); return $response; + } + } + }