我试图向其他API服务发出请求,这需要花费大量时间而没有成功......
为了测试它,我创建了一个简单的API请求:
function testTimeout() {
set_time_limit(0);
sleep(600);
echo json_encode(array('status' => 'ok', 'result' => 'true'));
}
如果我在普通浏览器中尝试了这个API请求,它工作得很完美,而且我总是收到响应(因此我认为问题出在我的CURL请求中)。只有在我使用CURL的时间不到500秒时才能使用CURL睡觉......但是我有更多的回答......
这是我的CURL请求:
set_time_limit(0);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
//execute post
$result = curl_exec($ch);
$curl_error = curl_error($ch);
//close connection
curl_close($ch);
我总是收到:"操作在1000000毫秒后超时,收到0字节"
我尝试将超过1000作为CURLOPT_TIMEOUT而没有成功......
这真的是异乎寻常的......我用Google搜索没有成功......