我正面临着Ffltter Android 12+版本的问题.使用Ffltter http插件(版本:0.13.5)使用应用程序的REST API调用.所有API调用都是带有域名的HTTPS服务调用.API调用需要10秒以上的时间来提供响应,而在移动数据网络中,相同的API调用只需要不到1秒的时间.与我try 使用Java客户端和Postman进行的API调用相同,所有响应都只需不到一秒的时间即可获得响应.

在故障排除期间,我使用Wifi Network测试了以下场景

  1. 我不是使用域,而是使用IP地址执行API服务调用,这只用了不到一秒钟的时间(在HTTP插件中禁用了SSL验证)
  2. 使用连接保持活动测试API调用:True,那么第一个调用花费了10+s,随后的调用只花费了不到一秒
  3. 一个有趣的事实是,我只在Android 12+上遇到了问题,Android 11设备可以在WiFi网络上工作,而且只用了不到一秒的时间就打完了服务电话.

现在我明白了,基于Wifi的应用编程接口调用总是花费10秒+实际的服务调用时间(例如400ms,因此应该是10.400秒).

这个问题有没有具体的原因?

flutter doctor -v
[√] 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

推荐答案

该问题是由于Ffltter HTTP客户端中的IPv4/IPv6 DNS解析造成的.在HTTP服务调用期间,DART客户端try 使用IPv6地址(而不是IPv4)进行DNS解析,其中DNS服务器不支持IPv6版本,因此它会等待10秒后,它会回退到IPv4并建立连接.许多Ffltter开发人员在Ffltter Git repo中报告了这个问题.

所有这些问题都得到了整合,并在Ffltter git repo中报告了一个新功能.

https://github.com/flutter/flutter/issues/116537

Flutter相关问答推荐

如何更改默认应用程序启动器/启动屏幕

自动测试Flutter应用程序进行QA的最佳方法是什么?

功能不起作用的Flutter 块复制

出现异常.RangeError(RangeError(index):无效值:有效值范围为空:0).分度误差

为什么Build_Runner的输出为0?

如何将assets资源 实体类型转换为文件类型?

我怎样才能go 掉这个底部导航栏上的白色背景

如何在Flutter 中使用滚动展开窗口小部件

运行调试flutter应用程序时出错:B/BL超出范围(最大+/-128MB)到'';

如何在flutter中更改showModalBottomSheet小部件中CheckboxListTile小部件的值?

如何在列表视图生成器中显示图像

Flutter:在 pubspec.yaml 中找不到assets资源

Flutter:使用 GlobalKey 访问 BlocProvider

网页浏览器不支持鼠标滚动的行项目

像图像一样Flutter 自定义标签

Flutter 判断 Uint8List 是否有效 Image

Pub get 尚未运行

在 Flame Forge2d 中射击子弹

.info/connected 这两个代码之间有什么区别吗?

我收到这个错误我无法解决