Flutter Http请求未在iOS上执行

时间:2019-01-18 11:28:51

标签: ios http dart flutter

这是我的应用为了登录用户而执行的第一个请求。在android上,每个请求都可以正常运行,但是由于某种原因,在iOS上,它们似乎未执行。我已经在模拟器上设置了开发人员选项,以允许HTTP服务。我还在物理iPad上测试了该代码,它将无法执行请求。

在测试期间,我没有为此使用任何超时,并且如果触发请求后我让代码运行一段时间,则会收到此日志(它可能与此无关,但由于我不知道是什么,我也会附上它):

[C1.1 958047F2-81ED-4A34-AEDE-A23D2CD6B49F 172.20.129.134:51780<->216.58.211.42:443]
Connected Path: satisfied (Path is satisfied), interface: en0
Duration: 240.322s, DNS @0.002s took 0.008s, TCP @0.017s took 0.014s, TLS took 0.287s
bytes in/out: 4769/1077, packets in/out: 9/10, rtt: 0.016s, retransmitted packets: 1, out-of-order packets: 0

代码如下:

Future<LoginResponse> login(String login, String password, AppLocalizations locale) async {

    final response = await http.post(_url, body: {
      "module": _moduleLogin,
      "user": login,
      "pass": password,
      "lang": locale.localeName
    });

    try{
      EventManager manager = EventManager.getInstance();
      manager.clearAllEvents();
    }catch(e){
      print(e);
    }

    if (response.statusCode == 200) {
      return LoginResponse.fromJson(jsonDecode(response.body));
    } else {
      throw Exception('Failed to connect to webservice');
    }}

在这一点上,我不知道是什么导致了这个问题。我正在使用http软件包的最新版本。

这是我扑扑的医生的输出:

[✓] Flutter (Channel beta, v0.9.4, on Mac OS X 10.14 18A391, locale es-ES)
    • Flutter version 0.9.4 at /Users/alex/Documents/Development/flutter
    • Framework revision f37c235c32 (4 months ago), 2018-09-25 17:45:40 -0400
    • Engine revision 74625aed32
    • Dart version 2.1.0-dev.5.0.flutter-a2eb050044

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/alex/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 27.0.3
    • ANDROID_HOME = /Users/alex/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 26.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 26.0.2
    • Dart plugin version 181.4445.29

[✓] VS Code (version 1.30.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.21.1

[✓] Connected devices (1 available)
    • iPhone XS • 5FB9A137-7AB3-46B5-94BC-9562B0E5E752 • ios • iOS 12.1 (simulator)

• No issues found!

1 个答案:

答案 0 :(得分:0)

想出了一个解决方案,尽管我不知道为什么会起作用。

我将http软件包替换为dio软件包,并且在两个平台上都能正常工作。