在一个旧的共享服务器上有这个测试cURL脚本。它从简单的GET请求返回而没有 https ://www.bing.com的问题,但超时或返回 http ://www.bing的部分内容。 com和超时。增加超时时间无济于事。
上述不当行为可以通过google.com,example.com和yahoo.com上的其他网址重现。
技术支持无用无用。同样,它是一个旧的共享服务器,所以我无法进入并以任何粒度对其进行故障排除。什么可能导致这种意外行为?
<?php
// FAILS - timeout or partial content AND timeout
$URL="http://www.bing.com";
// SUCCEEDS
//$URL="https://www.bing.com";
if (isset($_GET["site"])) { $URL = $_GET["site"]; }
$ch = curl_init();
echo "URL = $URL <br>\n";
curl_setopt($ch, CURLOPT_VERBOSE, 1);
//curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
//curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_URL, $URL);
curl_setopt ($ch, CURLOPT_TIMEOUT, 20);
$result = curl_exec ($ch);
echo "<hr><br>\n";
echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';
echo "<hr><br>\n";
curl_close ($ch);
print "result - $result";
echo "<hr><br>\n";
?>
示例输出:
错误:28操作在20000毫秒后以0字节超时 接收
或
错误:28操作在19811毫秒后7709输出超时 已收到92270字节
注意,此脚本在其他服务器上成功。我正在努力缩小失败点。
服务器:Apache,PHP 5.3,FastCGI