Здравствуйте! Посылаю несколько параллельных запросов через Guzzle. Подскажите, пожалуйста, как получить url запроса при успехе/ошибке?
<?php
// создаём клиент
$client = new Client([
'http_errors' => false,
'connect_timeout' => 0.00,
'timeout' => 0.00,
'headers' => [
'User-Agent' => 'Test/1.0'
],
]);
// храним здесь промисы
$promises = array();
$domains = array(
'toster' => 'https://toster.ru',
'example' => 'https://awesomesiteyousaw.com',
'qna.habr.com' => 'https://qna.habr.com'
);
// обходим каждый элемент
foreach($domains as $id => $url){
$promises[$id] = $client->getAsync($url);
$promises[$id]->then(
function (ResponseInterface $res) {
$tempVerdict = $res->getStatusCode(); // здесь хотелось бы получить url, по которому пытались достучаться
},
function ($e) {
$tempVerdict = $e->getMessage(); // и здесь тоже
}
);
}
// ждём выполнения промисов
$part_responses = Promise\Utils::settle($promises)->wait();