Ответ 1
Как написано в официальной документации Guzzle: http://guzzle.readthedocs.org/en/latest/quickstart.html
A Ошибка GuzzleHttp\Exception\ClientException для 400 ошибок уровня, если для параметра запроса исключений установлено значение true
Для правильной обработки ошибок я бы использовал этот код:
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
try {
$response = $client->get(YOUR_URL, [
'connect_timeout' => 10
]);
// Here the code for successful request
} catch (RequestException $e) {
// Catch all 4XX errors
// To catch exactly error 400 use
if ($e->getResponse()->getStatusCode() == '400') {
echo "Got response 400";
}
// You can check for whatever error status code you need
} catch (\Exception $e) {
// There was another exception.
}