我有这个奇怪的错误,CURL ERROR:Recv失败:连接由同行重置
这就是它发生的方式,如果我没有连接到服务器并突然尝试通过PHP中的CURL连接到服务器我得到错误.当我再次运行CURL脚本时,错误消失,然后一直运行良好,如果我让远程服务器空闲大约30分钟或重新启动远程服务器并尝试再次连接,我再次收到错误.所以似乎连接是空闲的,然后突然服务器唤醒然后工作然后再次睡眠.
这就是我的CURL脚本的外观.
$url = Yii::app()->params['pdfUrl'];
$body = 'title='.urlencode($title).'&client_url='.Yii::app()->params['pdfClientURL'].'&client_id='.Yii::app()->params['pdfClientID'].'&content='.urlencode(htmlentities($content));
$c = curl_init ($url);
$body = array(
"client_url"=>Yii::app()->params['pdfClientURL'],
"client_id"=>Yii::app()->params['pdfClientID'],
"title"=>urlencode($title),
"content"=>urlencode($content)
);
foreach($body as $key=>$value) { $body_str .= $key.'='.$value.'&'; }
rtrim($body_str,'&');
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body_str);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($c, CURLOPT_CONNECTTIMEOUT , 0);
curl_setopt ($c, CURLOPT_TIMEOUT , 20);
$pdf = curl_exec ($c);
$errorCode = curl_getinfo($c, CURLINFO_HTTP_CODE);
$curlInfo = curl_getinfo($c);
$curlError = curl_error($c);
curl_close ($c);
Run Code Online (Sandbox Code Playgroud)
我完全没有想法和解决方案,请帮忙,我会很感激!!!
如果我详细说明输出,看看会发生什么
curl_setopt ($c, CURLOPT_VERBOSE, TRUE);
curl_setopt($c, CURLOPT_STDERR, $fp);
Run Code Online (Sandbox Code Playgroud)
我得到以下内容 …
基本上,此错误仅发生在CURL中
curl: (56) Recv failure: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
但是,当我直接在浏览器上直接访问链接时,它可以工作!
您对修复此错误或导致此错误的建议有何建议?
注意:服务器在ASP中编码,只在一个API调用上发生