Bad state: Insecure HTTP is not allowed by platform:

旧巷老猫 提交于 2021-01-18 05:20:34

问题


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


回答1:


  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.




回答2:


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.




回答3:


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




回答4:


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>
    


来源:https://stackoverflow.com/questions/64197752/bad-state-insecure-http-is-not-allowed-by-platform

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!