I would like to handle errors from Guzzle when the server returns 4xx and 5xx status codes. I make a request like this:
$client = $this->getGuzzleClient()
Per the docs, the exception types you may need to catch are:
GuzzleHttp\Exception\ClientException for 400-level errorsGuzzleHttp\Exception\ServerException for 500-level errorsGuzzleHttp\Exception\BadResponseException for both (it's their superclass)Code to handle such errors thus now looks something like this:
$client = new GuzzleHttp\Client;
try {
$client->get('http://google.com/nosuchpage');
}
catch (GuzzleHttp\Exception\ClientException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
}