Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bad state: Insecure HTTP is not allowed by platform: [closed]

I'm having the following problem: E/flutter ( 7144): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Bad state: Insecure HTTP is not allowed by platform: http://myIPv4:PORT/PATH.

This is my flutter code to requisition

And this is the backend that I can access: My backend code

I already allowing the access by cors, but not even this help me. I already tried to use the http://localhost:port/path and http://myIP:port/path but doesn't worked!

But if I try access directly by browser so work.

Browser Print

like image 703
Lucas Guimarães Santos Avatar asked Oct 04 '20 17:10

Lucas Guimarães Santos


3 Answers

For Android:

This behavior may be omitted following migration guide: https://flutter.dev/docs/release/breaking-changes/network-policy-ios-android.

or... Just add in android/app/src/main/AndroidManifest.xml:

android:usesCleartextTraffic="true" to <application /> also dont forget to take INTERNET PERMISSION:

<uses-permission android:name="android.permission.INTERNET" /> <!-- This Line -->

<application
        android:name="io.flutter.app.FlutterApplication"
        android:label="receipt"
        android:usesCleartextTraffic="true" <!-- This Line -->
        android:icon="@mipmap/ic_launcher">

For iOS:

Allow insecure/HTTP requests globally across your application on iOS, you can add this to your ios/Runner/info.plist under the main dictionary definition:

<key>NSAppTransportSecurity</key>
<dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>

Be warned that you will need to have an explanation for Apple's review team when enabling this, otherwise your app will get rejected on submission.

Thank you.

like image 74
Pratik Butani Avatar answered Nov 20 '22 07:11

Pratik Butani


  1. Navigate to your project.
  2. Go to yourapp\android\app\src\debug\AndroidManifest.xml.
  3. Add this line.
<application android:usesCleartextTraffic="true">
</application>

For further details, follow this link.

like image 43
Mridul Bagla Avatar answered Nov 20 '22 07:11

Mridul Bagla


This problem is solved here.

https://flutter.dev/docs/release/breaking-changes/network-policy-ios-android

You just need to change the HTTP to HTTPS. Like this

Response response = await get('https://worldtimeapi.org/api/timezone/Africa/Nairobi');

like image 15
jjuma1992 Avatar answered Nov 20 '22 07:11

jjuma1992