Необходимость изменить существующий код для использования нового асинхронного вызова API.Оригинал использует cURL для отправки запроса и получения результатов.Новый метод требует, чтобы я отправил запрос на инициализацию, подождал 10-20 секунд или пока не вернется http 200, а затем отправил запрос cURL и использовал результаты, но не раньше, чем проверялось состояние «Завершено».
Я новичок в изучении cURL, и изо всех сил пытаюсь разобраться со многими постами, касающимися этого, любая помощь приветствуется.Код:
function check_boomi($service_id) {
$status="";
Инициализация нового вызова API Northbound
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://testurl.com/init?
ServiceID=".$service_id."");
Ожидание ответа http 200 перед выполнением запроса
sleep(20);
$result = curl_exec($ch);
Запуск API Northboundзапрос
curl_setopt($ch, CURLOPT_URL, "http://testurl.com/query?
ServiceID=".$service_id."");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Cache-Control: no-cache";
$headers[] = "Postman-Token: d2d57c3e-7c5d-df1b-4b61-dacb6c44b7cg";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
Проверить результат «статус»:
Если «Обработка» подождать 20 секунд и повторить попытку
Если «Завершено», использовать возвращаемые данные
curl_close ($ch);
$data = json_decode($result);
return $data;}