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匹配。

二、解决方案

如果出现:

PHP Notice: curl_setopt(): 

CURLOPT_SSL_VERIFYHOST with value 1 is deprecated and will be removed as of libcurl 7.28.1. It is recommended to use value 2 instead in

一般原因是你设置了 curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, true ); 

改成curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, 2 );就行了。

扩展资料

PHP其他原因错误:

1、错误现象

在用curl进行模拟调用时,curl接收内容会出现"Empty reply from server" 和 "Recv failure: Connection was reset"的错误。

2、解决方案

经过对apache的error_log进行跟踪,出现错误"Connection reset by peer: core_output_filter: writing data to the network"

修改httpd.conf,在虚拟主机上添加如下内容: 

EnableSendfile off

EnableMMAP off

修改后"Empty reply from server"错误消失。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-02-22
如果是https网站需要绕过ssl
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false);追问

是http的 我加了那两个参数的

第2个回答  2017-02-22
请问用的什么编程软件呀追问

PHP

追答

谢谢

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网