是否有必要使用 getConnectTimeout 和 getReadTimeout,我们为什么要使用它?
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(10000 /* milliseconds */);
urlConnection.setConnectTimeout(15000 /* milliseconds */);
urlConnection.connect();
是否有必要使用 getConnectTimeout 和 getReadTimeout
这不是必需的,但如果你想给你的用户一个良好的体验,这是一个很好的做法。没有人喜欢在加载屏幕上永远等待
连接超时我们为什么要使用它?
是建立初始连接的超时;即完成TCP连接握手。读取超时是等待读取数据的超时。我们使用它来确保如果连接需要时间,用户不必永远等待。对于 HttpUrlConnection
,默认readTimeout
和connectTimeout
为零。这意味着用户可能必须永远等待资源加载(这不会发生,因为套接字超时(
如果未指定连接超时(连接时间(和读取超时(读取响应时间(,则进行此调用的线程将永远阻塞。服务器端可能存在无限循环错误,但您的代码会受到影响。永远不要完全信任任何代码,尤其是当它是由其他人编写时。如果指定了这些计时,并且超时实际发生,则可以正常处理异常,也可以重试有限的次数(无论您的企业说什么和批准什么(。