Здравствуйте, у меня код на пхп + библиотека 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- параметр и пробую снова.