Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter Http request not being executed on iOS

This is the first request my app executes in order to log in the user. On android, every request works fine but, for some reason, on iOS they don't seem to be executed. I already have set up the developer options on the simulator to allow HTTP Services. I have also tested the code on a physical iPad, and it won't execute the request.

During testing i am not using any timeout for this and if I leave the code running for a while once I have triggered the request, i get this log (it might not be relevant for this, but since i don't know what it is, I will attach it too):

[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

Here's the code:

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');
    }}

At this point I don't know what can be causing this problem. I am using the latest version of the http package.

Here's my flutter doctor output:

[✓] 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!
like image 334
FunnyStunny Avatar asked Jan 18 '19 11:01

FunnyStunny


People also ask

Does Flutter work well on iOS?

Material Design is a flexible design system optimized for all platforms, including iOS. But Flutter is flexible and expressive enough to implement any design language. On iOS, you can use the Cupertino widgets to produce an interface that looks like Apple's iOS design language.

How does Flutter run the code on iOS?

How does Flutter run my code on iOS? The engine's C and C++ code are compiled with LLVM. The Dart code (both the SDK's and yours) are ahead-of-time (AOT) compiled into a native, ARM library. That library is included in a “runner” iOS project, and the whole thing is built into an .

How do I allow HTTP request in Flutter?

Open the AndroidManifest. xml file in the android/app/src/main folder. Then set usesCleartextTraffic to true .

Is Flutter stable for iOS?

Flutter 3, which went live in 2022, offers stable support for Linux and macOS running both on Intel and Apple Silicon processors. So, in total, the technology enables you to design UI across six platforms.


1 Answers

Figured out a solution even though I don't know why does it work.

I replaced the http package with the dio package and it worked fine on both platforms.

like image 58
FunnyStunny Avatar answered Oct 23 '22 11:10

FunnyStunny