1
我们编写了一个php/ajax应用程序,该应用程序通过cURL连接到API。我们建立它保持连接不确定,它运行良好,我们很高兴,定期使用它,然后转移到其他项目。尽管设置为不确定,cURL连接仍会丢失
我们最近重新访问了它,发现它已经开始以不同的时间间隔超时。我们检查了脚本寻找可能影响cURL调用的任何内容。没有。
我们有,并且有,在我们的简单脚本卷曲这些选项:
$sch = curl_init();
curl_setopt($sch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($sch, CURLOPT_URL, $test_url);
curl_setopt($sch, CURLOPT_WRITEFUNCTION, 'get_data');
curl_setopt($sch, CURLOPT_NOSIGNAL, 1);
curl_setopt($sch, CURLOPT_TIMEOUT,0);
$output = curl_exec($sch);
我的理解是,NOSIGNAL和超时选项的作用是什么让我们的连接打开。
但它不工作。
我有两个问题。
1)关于编码的任何想法,cURL中缺少的任何内容,或者代码中可能会影响连接的其他位置?什么会影响连接?
2)如果问题不在编码中,我们如何检查上游连接。如何检测连接实际上被丢弃的位置以及为什么?
谢谢您的建议,如果您有任何问题或需要其他信息,请不要犹豫,发布。
感谢
山姆
谢谢罗斯 - 我们在脚本中没有connecttimeout,因为连接没有问题。问题是保持联系。但是我没有将它插入到我们的脚本中,并且它在30-120秒后仍然断开连接。我们也有脚本来检查curl_error。我们感谢您的回答。 – user1715546
它发生在所有的网址上,还是只发生在某些网址上?什么是CURL的确切错误信息? –
您无意中指出我们正确的方向,我们不再相信cURL有失败。在试图打印curl_errors时,我评论说'curl_setopt($ sch,CURLOPT_WRITEFUNCTION,'get_data');'以防止它在执行curl_exec时运行。 CURL连接并保持连接。我们很快就责怪cURL,我们错了。感谢您对罗斯的帮助,对于我在这件事上没有尽到尽职调查表示歉意。 – user1715546