java 使用HttpURLConnection请求服务器,如果发送请求时没有问题,但返回结果时网络断了,如何处理?
我上边说的情况是否属于应答超时?HttpURLConnection.setReadTimeout(),是不是就是设置应答超时,如果超时的话返回的结果代码是多少?503吗?...
我上边说的情况是否属于应答超时?HttpURLConnection.setReadTimeout(),是不是就是设置应答超时,如果超时的话返回的结果代码是多少?503吗?
展开
1个回答
展开全部
.setConnectTimeout() 指的是与请求网址的服务器建立连接的超时时间。
setReadTimeout() 指的是建立连接后如果指定时间内服务器没有返回数据的后超时。
503是错误码,能返回就说明服务器返回了response。超时指的是你指定的时间没有收到服务器的response。
不管哪种超时都不有状态码返回。因为返回是在response响应中的,而就是在设定的时间内没有收到响应,才会超时。如果出现超时的话会抛出一个异常。你可以catch超时异常,然后根据需要处理就行了。
setReadTimeout() 指的是建立连接后如果指定时间内服务器没有返回数据的后超时。
503是错误码,能返回就说明服务器返回了response。超时指的是你指定的时间没有收到服务器的response。
不管哪种超时都不有状态码返回。因为返回是在response响应中的,而就是在设定的时间内没有收到响应,才会超时。如果出现超时的话会抛出一个异常。你可以catch超时异常,然后根据需要处理就行了。
追问
谢谢您的回答,您将的我清楚了。我现在的问题是,收到response之前网络断了,到不了catch里边
追答
只有收到response之前网络断了,才会抛出异常的。如果收到了收到response了,就说明连接正常,正常处理就行了。
在try区块的代码如果某行在执行时抛出异常,try区块内的剩下的代码就不执行了。转而执行catch里边对应异常区块内的代码。我们可以在catch内把异常处理掉,保证程序能正常执行下去。
另外finally区块里的代码是不论有没有异常都会被执行的代码。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询