PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как поменять GET параметры в Guzzle middleware?

Здравствуйте, у меня код на пхп + библиотека Guzzle, парсит другой сайт, иногда, по разным причинам, мне возвращаются 400\500 коды или вобще ошибки сети и тогда мне нужно сделать повторный запрос.
https://docs.guzzlephp.org/en/stable/handlers-and-...

С этой задачей справляется мидлвара от газла, у меня такая:
public function addRetryMiddleware($maxRetries)
    {
        $retryMiddleware = Middleware::retry(
            function (
                $retries,
                RequestInterface $request,
                ResponseInterface $response = null,
                TransferException $exception = null
            ) use ($maxRetries) {
                if ($retries >= $maxRetries) {
                    return false;
                }

                if ($exception instanceof TransferException || ($response && $response->getStatusCode() >= 500)) {
                    return true;
                }

                return false;
            },
            function ($retries) {
                return $retries * 1000;
            }
        );

        $this->handlerStack->push($retryMiddleware);
    }

Сам запрос - это GET с кучей параметров в url, я заметил что мне достаточно поменять какой-то один параметр и сделать запрос повторно и ошибка пропадает, но я не могу понять как этот процесс нормально автоматизировать, смотрю в код мидлвары и не вижу как поменять сам адрес запроса, не могу добраться до объекта реквеста и как-то изменить его, возможно кто-то сталкивался с такой проблемой и подскажет?
те случилась ошибка, я беру и в запросе меняю и\или добавляю какой-то get- параметр и пробую снова.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы