У меня возникла проблема с версией Flutter Android 12+. Вызовы REST API, потребляющие приложение, с использованием http-плагина Flutter (версия: 0.13.5). Все вызовы API являются вызовами службы HTTPS с доменным именем. Вызовы API требуют более 10 секунд для предоставления ответа, тогда как те же вызовы API занимают менее секунды в мобильных сетях передачи данных. Те же самые вызовы API, которые я пробовал с помощью Java Client и Postman, все ответы заняли менее секунды, чтобы получить ответ.
Во время устранения неполадок я протестировал следующие сценарии с использованием сети Wi-Fi.
Теперь я понял, что вызовы API на основе Wi-Fi всегда занимают 10 секунд + фактическое время вызова службы (например, 400 мс, следовательно, это будет 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
да, другие домены отлично работают на Android12+. Кроме того, одно и то же доменное имя работает в течение секунды при использовании HTTP-клиента Java в том же Wi-Fi.
А браузер на вашем устройстве?
Да, в браузере Chrome это заняло меньше секунды
Эта проблема связана с разрешением DNS IPv4/IPv6 в HTTP-клиенте флаттера. Во время вызова службы HTTP клиент dart пытается разрешить DNS, используя адрес IPv6 вместо IPv4, где DNS-серверы не поддерживают версию IPV6, поэтому он ждет 10 секунд, после чего возвращается к IPv4 и устанавливает соединение. Многие разработчики флаттера сообщили об этой проблеме в репозитории Flutter git.
Все эти проблемы были объединены и сообщены о новой функции в репозитории Flutter git (https://github.com/flutter/flutter/issues/116537)
Обновить Запрос функции Flutter закрыт и поднят новый запрос функции в dart SDK https://github.com/dart-lang/sdk/issues/50868
Вы нашли какое-либо решение для этой проблемы??
Я еще не отправил запрос функции в dart SDK github.com/dart-lang/sdk/issues/50868
Так что медленный только DNS по Wi-Fi?