Жрать, как обрабатывать RequestException, когда хост находится в автономном режиме - PullRequest
0 голосов
/ 23 января 2020

Я использую Guzzle внутри laravel фреймворка, но когда хост находится в автономном режиме, я получаю исключение вместо кода состояния, который вы можете получить с помощью getStatusCode(). Теперь я сделал попытку поймать запрос, но вне этого метода у меня есть метод, который проверяет код состояния. У меня вопрос, как я могу вернуть в перехвате правильный ответ, чтобы я мог вызвать вне этого метода getStatusCode().

Мой код, чтобы сделать запрос выглядит так:

public function makeRequest($method, $requestUrl, $queryParams = [])
    {
        try{
            $client = new Client(['http_errors' => false]);
            return $client->request($method, $requestUrl, [
                'query' => $queryParams
            ]);
        }catch(RequestException $exception){
            LOG::info($exception->getMessage());
            return $exception->getResponse();
        }
    }

1 Ответ

1 голос
/ 26 января 2020

Ваша идея (всегда возвращайте Response объект из метода) не работает по проекту. Я имею в виду, что вы уже это видите, в некоторых случаях Response объект отсутствует (например, когда невозможно установить соединение с хостом, например, поток HTTP даже не запускается, поэтому вы этого не делаете иметь любой код состояния HTTP).

IMO - лучший способ сообщить вашему коду об исключении. Не пытайтесь обращаться с этим внутри вашего makeRequest(), просто дайте ему течь дальше, до точки, где вы на самом деле можете с этим справиться.

...