httpConnection setConnectTimeout 超时无响应
的有关信息介绍如下:
最近在做项目,其中大量需要调用第三方接口,所以在本地测试,由于数据量小的缘故,没有发现连接超时无响应的问题,部署到生产环境,就会抛异常,好了不多说了下面我来介绍一下如何解决的
由于调用接口都是用了httpConnection,所以一开始就设置了连接超时时间,如下图
经过压力测试工具测试 连接真正的接口,抛出以下异常(weblogic)
ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)
经过一系列分析发现,接口连接正常,但是由于底层接口数据量过大,导致响应速度慢,所以程序一直在等待响应数据,导致时间过长抛出无响应超时异常,
只设置了setConnectTimeout没有设置setReadTimeout参数导致的
setConnectTimeout:设置连接主机超时(单位:毫秒)setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);



