Scumtron
@Scumtron

Как с Guzzle сделать два последовательных запроса, где второй использует результат первого?

Здравствуйте,

Подскажите пожалуйста, как с помощью Guzzle реализовать два последовательных запроса, где второй использует результат первого?

Имеется тестовая страница с токеном и API scumtron.ru/api/?auth=, который со случайностью 10% генерирует ошибки HTTP 501-504.

Необходимо первым запросом с помощью preg_match получить токен (каждый раз уникальный) и использовать его во втором запросе в качестве параметра auth. В идеале, хочется отлавливать HTTP ошибки типа 501-504 и в случае возникновения подобных, делать несколько раз попытку репарсинга, а так же записывать в лог-файл все неудачные запросы.

На данном этапе получается спарсить токен, а вот как в одном подключении использовать полученные данные для второго запроса не могу найти примеров. Помогите пожалуйста.

use GuzzleHttp\Client;

$client = new Client([
	'base_uri' => 'http://scumtron.ru',
	'timeout'  => 3,
	'connect_timeout' => 3,
	'allow_redirects' => false
]);

$response = $client->request('GET', '/');
$body = $response->getBody();
preg_match("#<b>([0-9]{8})</b>#", $body, $token);
echo $token[1];
  • Вопрос задан
  • 482 просмотра
Решения вопроса 1
@AlikDex
Последовательно делаешь второй запрос, если есть результат первого. Очевидно же.

Кроме того Guzzle умеет обрабатывать ошибки запросов, в том числе и с 500+ кодами ответов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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