Android中HttpsURLConnection返回502/403状态过慢的问题求助
Android模拟器中HttpsURLConnection获取响应码超时问题
更新:目标站点已变更,不再返回Nginx通用502错误,而是即时返回带自定义消息的403错误,导致原问题无法复现。
我开发了一款从Weather.gov获取数据的应用,当该站点出现故障时,发现HttpsURLConnection需要数分钟才能返回状态码。相关代码如下:
String urlString = "https://api.weather.gov/gridpoints/VEF/127,91/forecast"; HttpsURLConnection connection = (HttpsURLConnection) new URL (urlString).openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); connection.setReadTimeout (1000); int responseCode = connection.getResponseCode (); // 此处需等待数分钟才能返回
不同环境下的表现:
- 浏览器中打开该链接,可即时返回结果;
- 桌面程序运行相同逻辑,也可即时返回结果;
- Android Studio模拟器中运行时,却需要数分钟才能返回;
- 调整超时设置无任何效果。
我想请教:如何让响应更快返回,以便及时告知用户出现问题?尽管我已将该逻辑放在线程中,可显示“处理中”状态,但本不应如此——如前文所述,其他环境均可即时返回状态。
注:可能有人会建议更换天气数据源,但这并非重点。网络连接问题时有发生,我希望优化应用的异常处理能力。
开发环境
- Android Studio Giraffe | 2022.3.1 Patch 1
- Build #AI-223.8836.35.2231.10671973,构建于2023年8月17日
- 运行时版本:17.0.6+0-b2043.56-10027231 amd64
- 虚拟机:JetBrains s.r.o. 出品的OpenJDK 64位服务器虚拟机
- 桌面JDK版本:openjdk version "19.0.2" 2023-01-17,OpenJDK Runtime Environment (build 19.0.2+7-44)
内容的提问来源于stack exchange,提问作者PhotoKevin
相关产品推荐
相关产品推荐

