2015-07-03 1 views
3

Я использую Laravel 5.1 и Guzzle для отправки запросов API.Ошибка регистрации Laravel перед laravel

У меня есть две функции: одна, чтобы получить человека, а вторая - для получения данных о человеке, поскольку каждый из них является отдельным запросом.

Если ничего не найдено ни для кода ответа 404, он отправляется обратно и берется ларавелем.

Однако ответ 404 функции 1 имеет другое значение, чем ответ от функции два, хотя они являются одним и тем же кодом ответа и исключением, но жгут.

Я попытался поймать ошибку в контроллере для метода в надежде, что он поймает его до выполнения обработчика исключений laravels, но он не работает и не улавливается обработчиком.

Как я могу уловить исключение в контроллере перед обработчиком исключений Laravels?

ответ

6

В верхней части контроллера добавить:

use GuzzleHttp\Exception\RequestException; 

Обертка Ваш запрос в попытке поймать так:

try { 
    $client->get('https://github.com/_abc_123_404'); 
} catch (RequestException $e) { 
    echo $e->getRequest(); 
    if ($e->hasResponse()) { 
     echo $e->getResponse(); 
    } 
} 

Вы можете поймать любое исключение жрать, если вы хотите только поймать 404 , то вы можете попытаться использовать ClientException в верхней части своего контроллера и поймать, что это исключение распространяется на BadResponseException, которое, в свою очередь, расширяет RequestException. См. documentation для более подробной информации.

+0

Большое спасибо, я на самом деле пробовал это, но я думаю, что я забыл импортировать RequestException, спасибо –