You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 12+环境下Flutter HTTP插件调用REST API WiFi网络异常缓慢问题

Flutter Android 12+ WiFi环境HTTPS请求超时问题

问题描述

应用基于Flutter 3.3.6开发,使用**http插件(0.13.5)**调用HTTPS域名接口时,出现以下异常:

  • WiFi网络下接口响应耗时超10秒,移动数据网络下耗时不到1秒;
  • Java客户端、Postman调用同接口,无论网络环境耗时均不到1秒。

排查测试结果(WiFi环境)

  • 用IP地址替代域名调用(禁用SSL验证),耗时不到1秒;
  • 开启connection keep-alive: true后,首次请求耗时超10秒,后续请求耗时恢复正常;
  • 仅Android 12+设备存在此问题,Android 11及以下设备WiFi环境下接口耗时正常。

目前发现WiFi环境下总耗时固定为10秒+实际接口处理时间(例如10.400秒左右),请问该问题的特定诱因是什么?

Flutter环境信息

[√] Flutter (Channel stable, 3.3.6, on Microsoft Windows [Version 10.0.22000.1219], locale en-US)
    • Flutter version 3.3.6 on channel stable at C:\Applns\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6928314d50 (6 weeks ago), 2022-10-25 16:34:41 -0400
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0

[!] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at C:\Users\Siju\AppData\Local\Android\sdk
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.4.1)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33110.190
    • Windows 10 SDK version 10.0.22000.0

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] Connected device (4 available)
    • 2201116SI (mobile) • b75ac32a6d34 • android-arm64  • Android 12 (API 31)
    • Windows (desktop)  • windows      • windows-x64    • Microsoft Windows [Version 10.0.22000.1219]
    • Chrome (web)       • chrome       • web-javascript • Google Chrome 107.0.5304.123
    • Edge (web)         • edge         • web-javascript • Microsoft Edge 107.0.1418.62

[√] HTTP Host Availability
    • All required HTTP hosts are available

问题诱因分析

结合测试结果和环境信息,问题的核心诱因如下:

  1. Android 12+ DNS策略变更与旧版插件适配冲突
    Android 12(API 31)强制默认启用私有DNS(若网络支持),而你使用的http插件0.13.5基于的Dart 2.18.2版本,其底层IO HTTP客户端未适配该DNS策略,导致首次域名解析时触发10秒超时等待——这正是你观察到的固定延迟来源。

  2. DNS解析环节是核心瓶颈
    IP直连跳过DNS解析后耗时正常、开启keep-alive后后续请求复用连接无需重复解析也正常,直接证明问题出在域名解析阶段,而非SSL握手或接口处理逻辑。

  3. 第三方客户端无异常的原因
    Java客户端、Postman使用的是Android系统自带的HttpURLConnection或OkHttp等成熟库,这些库已经适配了Android 12+的DNS变更,因此不会出现超时问题。

内容的提问来源于stack exchange,提问作者John_S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:45:30