查看以下PHP代码:
$start = time();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://gmaxil.com');
curl_setopt($ch, CURLOPT_USERAGENT, 'Java/1.7.0_60');
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
$end = time();
var_dump(curl_error($ch));
var_dump($end-$start);
curl_close($ch);
在本地GAE环境(我的机器)上运行它,我得到以下响应(约2秒钟后):
string(43)"在2529毫秒后解决超时时间" INT(2)
在GAE远程环境中运行它,我收到以下响应(约40秒后):
字符串(34)"无法解析主机' gmaxil.com'" INT(40)
为什么Google App Engine会忽略cURL超时选项?
答案 0 :(得分:1)
请检查此链接。 PHP cURL: CURLOPT_CONNECTTIMEOUT vs CURLOPT_TIMEOUT
CURLOPT_TIMEOUT是您允许libcurl将数据传输到服务器的最长时间,这并不意味着服务器将在您设置的超时时间内响应。