1
votes

SocketException: échec de la connexion (erreur du système d'exploitation: le réseau est inaccessible, numéro d'erreur = 101), adresse = 10.0.2.2, port = 80

Faire un écran de connexion flottant lorsque j'appuie sur le login, cela donne l'erreur "le réseau est inaccessible".

J'ai changé les adresses IP "10.0.2.2", "8.7.7.7" mais ne fonctionne pas.

Erreur:

TextEditingController user=new TextEditingController();
TextEditingController pass=new TextEditingController();

Future<List> _login() async{
  final response = await http.post("http://127.0.0.1/my_store/login.php", body: {
    "username": user.text,
    "password": pass.text,
   
  });

  print(response.body);
  }

CODE:

E/flutter (16082): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled 
Exception: SocketException: Connection failed 
(OS Error: Network is unreachable, errno = 101), address = 10.0.2.2, port = 80


3 commentaires

Nous avons besoin d'un code pour pouvoir vous aider.


@MartinNiederl Dois-je fournir l'intégralité du script?


Selon que votre appareil s'exécute dans un émulateur ou sur un appareil externe, l'adresse IP pour accéder au serveur local doit être ajustée. Voici une petite explication: stackoverflow.com/a/34732276/6513167 Je ne connais pas votre configuration, donc je ne Je ne sais pas comment atteindre votre serveur local.


3 Réponses :


0
votes

J'ai recherché quelques fils à ce sujet et des problèmes de connexion similaires. Dans mon cas, parfois la connexion fonctionne, parfois elle refuse de fonctionner. Le processus que j'ai utilisé pour résoudre ce problème était le suivant:

Ouvrez cmd -> ipconfig

l'adresse IP qui est pertinente pour ma solution

Puisque j'utilise un serveur Apache et que j'ai un fichier php qui gère la demande make in Flutter, j'ai défini l'url comme suit:

    TextEditingController user=new TextEditingController();
    TextEditingController pass=new TextEditingController();

    Future<List> _login() async{
      final response = await http.post("http://<your_ipv4_of_ipconfig>/my_store/login.php", body: {
        "username": user.text,
        "password": pass.text,

      });

      print(response.body);
      }

Dans votre cas, le code serait

 String url="http://192.168.0.137/login.php"

p >


0 commentaires

1
votes

si vous utilisez un périphérique physique, assurez-vous que l'adresse IP est celle de votre ordinateur. vous pouvez le trouver en exécutant ipconfig dans cmd. N'oubliez pas que vous devez être connecté à Internet pour avoir cette adresse IP.


0 commentaires

0
votes

Dans mon cas, activer le wifi et vérifier qu'il est connecté a résolu le problème.  entrez la description de l'image ici


0 commentaires