今天遇到一个问题,http请求数据失败了,报错如下
url:http://test.localtest.com/test/trans?id=72,errno:28,error:Operation timed out after 10000 milliseconds with 18603019 out of 21019387 bytes received
这个提示的意思总共 21019387字节的数据,10秒的时间里已经接收到了 18603019 字节,
这说明网络是正常的,请求也是正常的,但是由于curl请求中设置了读写超时时间10s,
而数据量过大导致10s到了,但是数据仍然没有传输完,请求就被客户端终止了,
这种情况有以下几种解决思路
1、减少数据传输量,如压缩、数据提供方剔除多余数据
2、提高传输速度
3、增加读写超时时间,这是最简单直接的方法,不需要运维介入,从上面可以看出,实际上只差一点点就能全部传输完毕,可以将读写超时调大到15s