Bad state: Insecure HTTP is not allowed by platform:

Viewed 64223

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

4 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.

  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.

I solved it by following this step:

  1. android/app/src/main/AndroidManifest.xml then write

    <application
    android:usesCleartextTraffic="true"
    android:label="laundry"
    android:icon="@mipmap/ic_launcher">
    <uses-library
     android:name="org.apache.http.legacy"
     android:required="false" />  </application>
    
Related