用到curl访问服务器时,总是被CURLOPT_TIMEOUT、CURLOPT_CONNECTTIMEOUT、CURLOPT_LOW_SPEED_LIMIT、CURLOPT_LOW_SPEED_TIME搞晕,今天总结记录一下,已备后续查看。
CURLOPT_TIMEOUT:代表接收服务器下发的数据总时间,如果超过这个时间,就会断开连接。
CURLOPT_CONNECTTIMEOUT:代表连接服务器前的等待时间,如果超过这个时间,就会断开连接。
CURLOPT_LOW_SPEED_LIMIT:CURLOPT_LOW_SPEED_TIME时间内,连续下载速度小于该值,就会断开连接。
CURLOPT_LOW_SPEED_TIME:该时间内,连续下载速度小于CURLOPT_LOW_SPEED_LIMIT值,就会断开连接。
举个例子(假设CURLOPT_CONNECTTIMEOUT=10,CURLOPT_TIMEOUT=20,CURLOPT_LOW_SPEED_LIMIT=1024,CURLOPT_LOW_SPEED_TIME=5):
如果使用curl下载视频时,
①如果10s内服务器没有响应(握手没有成功),则断开连接。
②如果20s内视频没有下载完成,则断开连接。
③连续5s内下载速度小于1024b/s,则断开连接。
注:②和③谁先满足条件,谁先执行。