Если вам нужен код на PHP для отправки GET запроса и проверки кода ответа, вы можете использовать функцию curl:
<?php
$url = "https://example.com/api/endpoint";
do {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
} while ($status == 202);
if ($status == 200) {
// do something with the json data
$json_data = json_decode($body);
//...
} else {
// handle error
}
?>
В этом коде, мы используем цикл do-while для отправки GET запроса и проверки кода ответа. Если код ответа равен 202, запрос будет повторяться, иначе выйдет из цикла. Если код ответа равен 200, мы можем работать с json данными, иначе обработать ошибку.
Однако, стоит иметь в виду, что ожидание ответа может быть долгим и ваш скрипт может зависнуть на этом месте. Вам может потребоваться добавить таймаут или использовать функцию sleep для добавления задержки между повторными запросами. Вы также можете использовать функцию json_last_error для проверки корректности полученных json данных.
<?php
$url = "https://example.com/api/endpoint";
do {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($status == 202) {
sleep(10); // delay for 10 seconds
}
} while ($status == 202);
if ($status == 200) {
$json_data = json_decode($body);
if(json_last_error() === JSON_ERROR_NONE) {
// do something with the json data
} else {
// handle json error
}
} else {
// handle error
}
?>
В этом коде, мы добавили функцию sleep для задержки между повторными запросами и использовали функцию json_last_error для проверки корректности полученных json данных.