В настоящее время я использую Guzzle 6.3 с Syfmony 3.2 и PHP 7.1 для отправки 4 запросов другому API:
- аутентификация
- создание "папки"
- добавление файла в «папку»
- получение файла
Между setp 3 и 4 есть процесс OCR. И когда я отправляю 4-й запрос до завершения OCR,Я получаю эту ошибку от Guzzle:
Итак, я проверил отладку Guzzle, и кажется, что она была вызвана ответом HTTP 102 сервера:
Это нормально, что Guzzle буквально падает, когда появляется эта ошибка?Потому что моя проблема в том, что остальная часть функции не выполняется после того, как ошибка cURL показывает себя.
Когда я пытался воспроизвести эту ошибку в минимальном PHP-коде (с помощью простого запроса cURL), яв состоянии получить код состояния HTTP и выполнить цикл while, пока сервер не отправит HTTP 200:
<?php
$response3 = curl_exec($curl3);
$err3 = curl_error($curl3);
$errno3 = curl_errno($curl3);
$httpcode = curl_getinfo($curl3, CURLINFO_HTTP_CODE) ;
echo "Http code : ".$httpcode."\r\n" ;
while ( $httpcode == "102" ) {
sleep(5);
$response3 = curl_exec($curl3);
$err3 = curl_error($curl3);
$errno3 = curl_errno($curl3);
$httpcode = curl_getinfo($curl3, CURLINFO_HTTP_CODE) ;
echo "Http code : ".$httpcode."\r\n" ;
}
curl_close($curl3);
if ($err3) {
echo "Resp : ".$response3."\r\n" ;
echo " 3 cURL Error #:" . $err3."\r\n";
echo " 3 cURL Error #:" . $errno3."\r\n";
} else {
echo $response3."\r\n";
}
?>
У вас есть какое-либо объяснение?Эта проблема исходит от Guzzle или другого API?