Как отловить ошибку GuzzleHttp в Laravel? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть простой метод в команде Laravel, который выглядит следующим образом:

private function get($index_name, $params)
{
    $client = new \GuzzleHttp\Client([
        'allow_redirects' => TRUE,
        'headers' => [
            // 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8',
            'Accept-Encoding' => 'gzip, deflate, br',
            'Accept-Language' => 'en-US,en;q=0.9',
            'User-Agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/63.0.3239.84 Chrome/63.0.3239.84 Safari/537.36',
            'content-type' => 'application/x-www-form-urlencoded',
            'accept' => 'application/json',
        ]
    ]);

    $page = 0;

    do {
        $request = sprintf('{"requests":[{"indexName":"%s","params":"filters=%s&page=%d"}]}', $index_name, $params, $page);

        $this->info('Request: ' . $request);

        try {
            $body = (string) $client->post(self::URL, ['body' => $request])->getBody();
        } catch (\GuzzleHttp\Exception\ClientException $exception) {
            dd('exception');
        }

Основная проблема в том, что я не могу поймать исключение, выданное GuzzleHttp. Я пробовал много классов, таких как: \Exception, \RuntimeException, \RequestEception и т. Д.

Каждый раз, когда я получаю Client error в RequestException.php:

В строке RequestException.php 113: Ошибка клиента: POST https://******* привело к 403 Forbidden Ответ:
{"message": "Неверный идентификатор приложения или ключ API", "status": 403}

...