多语言展示
当前在线:1166今日阅读:176今日分享:34

httpConnection setConnectTimeout 超时无响应

最近在做项目,其中大量需要调用第三方接口,所以在本地测试,由于数据量小的缘故,没有发现连接超时无响应的问题,部署到生产环境,就会抛异常,好了不多说了下面我来介绍一下如何解决的
工具/原料

MyEclipse

方法/步骤
1

由于调用接口都是用了httpConnection,所以一开始就设置了连接超时时间,如下图

2

经过压力测试工具测试 连接真正的接口,抛出以下异常(weblogic)ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)

3

经过一系列分析发现,接口连接正常,但是由于底层接口数据量过大,导致响应速度慢,所以程序一直在等待响应数据,导致时间过长抛出无响应超时异常,只设置了setConnectTimeout没有设置setReadTimeout参数导致的setConnectTimeout:设置连接主机超时(单位:毫秒)setReadTimeout:设置从主机读取数据超时(单位:毫秒)例如:HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();urlCon.setConnectTimeout(30000);urlCon.setReadTimeout(30000);

推荐信息