什么会导致cURL在HTTPS上成功,但在HTTP上失败?

时间:2016-07-29 16:10:45

标签: php apache curl connection-timeout

在一个旧的共享服务器上有这个测试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

0 个答案:

没有答案