《PHP用curl采集时,出现Recv failure: Connection was aborted》要点:
本文介绍了PHP用curl采集时,出现Recv failure: Connection was aborted,希望对您有用。如果有疑问,可以联系我们。
PHP用curl采集时,偶尔会出现 Recv failure: Connection was aborted
由于是偶然的,不好还原。目前初步判断是目标服务器连接不太稳定。
以下是可能的原因,可能性一似乎没有作用:
可能性一:
web站点目前主要分为http和https两种协议,其中https类型的网站都是通过ssl协议+http协议的,是目前最安全的网站协议,访问此类网站的时候,会走ssl协议,验证访问者的证书,检测是否安全。
通过curl访问此类网站也是如此流程,但是curl中需要添加相应的参数,绕过ssl证书的验证,才可以正常访问,如出现此错误的一般原因是没有加此参数。
CURLOPT_SSL_VERIFYHOST的值
设为0表示不检查证书
设为1表示检查证书中是否有CN(common name)字段
设为2表示在1的基础上校验当前的域名是否与CN匹配。而早期版本中这个变量是值,为时作用同目前设置为,后来出于,增加了的选项,因此两个值就不够用了,升级为三个值。
再后来(之后的版本),这个调试选项由于,被去掉了,因此目前也不支持了,只有两种取值。
最新版本,它的默认值就是2