여기 코드에 대한이 partial_response.php에서 부분 반응을 얻으려고 노력 오전 내 코드PHP cURL을 사용하여 부분 응답을받을 수 있습니까?
$url = "partial_response.php";
$sac_curl = curl_init();
curl_setopt($sac_curl, CURLOPT_HTTPGET, true);
curl_setopt($sac_curl, CURLOPT_URL, $url);
curl_setopt($sac_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($sac_curl, CURLOPT_HEADER, false);
curl_setopt($sac_curl, CURLOPT_TIMEOUT, 11);
$resp = curl_exec($sac_curl);
curl_close($sac_curl);
echo $resp;
Partial_response.php
header('Content-type: text/html; charset=utf-8');
echo 'Job waiting ...<br />';
for($i = 0 ; $i < 10 ; $i++)
{
echo $i . '<br/>';
flush();
ob_flush();
sleep(1);
}
echo 'End ...<br/>';
입니다. 내가 원하는 것은 partial_response.php가 루프를 완료하고 전체 데이터를 반환하기를 기다리는 대신 "Job waiting .."이라고 혼자 돌아 오는 컬이 필요하다는 것입니다. 그래서 내가 11 이하의 CURLOPT_TIMEOUT을 줄이면 전혀 응답을 얻지 못합니다. 친절히 내 의심을 분명히합니다. 미리 감사드립니다.
문제는 * 응답 *이 끝나는 시점이 아니라 추측 할 수 있지만 * 전송 * 끝 부분에 있습니다. 제 생각에 당신의'Partial_response.php'는 실행이 끝날 때 데이터를 보내므로 절대로 시간 초과가 없어서 결코 얻을 수 없을 것입니다 (끝나지 않아서 데이터가 보내지지 않습니다). 'flush()'함수를 단독으로 사용하거나'CURLOPT_WRITEFUNCTION'과 함께 사용하여 부분 출력을 얻으십시오. – Ranty