PHP CURL错误-CURL:(56)Recv失败:对等方重置连接


PHP CURL Error - curl: (56) Recv failure: Connection reset by peer

基本上,这个错误只发生在CURL 中

curl: (56) Recv failure: Connection reset by peer

但当我直接访问它时,直接在浏览器上的链接,它就起作用了!

您对修复此错误或导致此错误的原因有何建议?

注意:服务器是用ASP编码的,它只发生在一个API调用上

我通过从URL中删除空白字符解决了这个问题。在我的情况下,出错的是代理服务器,而不是web服务器。

在PHP中:

     curl_setopt($ch, CURLOPT_URL, trim($url));

我记得很久以前也遇到过同样的问题。虽然我不记得到底是什么解决了这个问题,但我记得我尝试过以下方法:

  1. 我试图直接传递URL中的查询参数,并尝试通过POST方法

  2. 我试着使用curl的代理,看看我是否可能被另一个服务器阻止

  3. 我相信我也要求我的主机进行调查,他们对进行了一些Apache设置更改

我对这段代码也有类似的问题:

        $url = "http://xxx.xxx.xxx.xxx";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_PORT, 44455); //Set the port to connect to
        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455); 
        curl_setopt($ch, CURLOPT_URL, $url);
        echo $xml = curl_exec($ch);
        if(curl_errno($ch))
        {
            echo 'error:' . curl_error($ch);
        }
        curl_close($ch);

通过禁用以下功能解决了问题:

        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455);