У меня есть простой метод в команде 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}