[Fixed] How to solve insecure http not allowed by platform flutter?


I am trying to fetch some data from my custom made rest api and i am having a lot of trouble with this error. I even tried the google official migration guide.

import 'package:flutter/material.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;

class Home extends StatefulWidget {
  _HomeState createState() => _HomeState();

class _HomeState extends State<Home> {
  String PROTOCOL = "http";
  String DOMAIN = "";

  Future<List<dynamic>> fetchUsers() async {
    var url = "$PROTOCOL://$DOMAIN/posts";
    var result = await http.get(url);
    return json.decode(result.body);

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        child: FutureBuilder<List<dynamic>>(
          future: fetchUsers(),
          builder: (BuildContext context, AsyncSnapshot snapshot) {
            if (snapshot.hasData) {
              return ListView.builder(
                itemBuilder: (BuildContext context, int index) {
                  return Text(snapshot.data[index]['description']);
                itemCount: snapshot.data.length,
            } else
              return Container();

My server is up and running and working good with postman but facing troubles with flutter.Need some serious help here!


To temp fix your problem. First add a config in res/xml(my full path is /Users/dolphin/source/third-party/Cruise/android/app/src/main/res/xml) folder:

<?xml version="1.0" encoding="utf-8"?>
    <base-config cleartextTrafficPermitted="true" />

then in your AndroidManifest.xml file add this config:


this could allow http traffic. But it just using to debug, the best way is to using https traffic. more info: How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?

It have solve my same problem. Hope this help for you!

Leave a Reply

(*) Required, Your email will not be published