5
votes

Appelez l'API localhost dans React Native (appareil Android: connecté via local)

J'ai créé une API GET simple en utilisant node.js et en essayant de la consommer dans mon projet natif expo-react en utilisant axios / fetch.

L'API GET est appelée chaque fois que l'utilisateur clique sur le bouton d'envoi.

Soumettre -> http: // localhost: port / api

Cependant, lorsque j'essaie de tester la fonctionnalité sur mon appareil Android en connectant l'appareil via datacable et en sélectionnant le type de connexion "local" dans expo, l'appel API tombe toujours sous exception.

Lorsque j'ai essayé de consigner l'exception, l'exception est affichée vide.

J'ai vérifié deux fois l'API et elle fonctionne bien lorsqu'elle est testée via Postman.

J'ai essayé de remplacer localhost url par my-Ip ( http: // IP: port / api ) et également avec 127.0.0.1/127.0.2.2 ( http://127.0.0.1:port/api , http://127.0.2.2:port/api ), mais rien ne semble faire appeler l'API un succès.

Lorsque j'ai remplacé l'URL localhost par l'exemple d'API réseau de Facebook, l'application fonctionnait très bien. Il n'y a donc aucun problème avec la méthode d'appel API.

J'ai également essayé d'ajouter le port à la demande de pare-feu entrant Windows, mais cela n'a pas fonctionné non plus.

Quelqu'un peut-il m'aider avec ça?


0 commentaires

3 Réponses :


2
votes

oui, j'ai également eu ce problème jusqu'à ce que j'utilise mon adresse IP locale (exemple: http://192.168.1.55:port < / a>) au lieu de 127.0.0.1 veuillez consulter cette réponse


1 commentaires

J'ai essayé de remplacer localhost par mon adresse IP locale, mais cela n'a malheureusement pas fonctionné.



1
votes

Vous devez appeler l'API à partir de votre adresse IP locale. Pour obtenir votre adresse IP locale, procédez comme suit:

Si vous êtes sur Ubuntu 16.04:

ip -c a | grep 192

Si vous êtes sur Ubuntu 18.04:

ifconfig | grep 192

Votre adresse IP locale sera probablement quelque chose comme 192.168.0.XXX.


8 commentaires

J'ai essayé de remplacer localhost par mon adresse IP locale, mais cela n'a malheureusement pas fonctionné.


Assurez-vous que votre téléphone est connecté au même wi-fi que votre ordinateur. Et vérifiez si l'adresse IP locale est accessible depuis le même ordinateur. Parfois, il y a des problèmes concernant les ports et le pare-feu.


Le téléphone et l'ordinateur portable sont connectés au même WiFi. J'ai essayé d'accéder à myIp: port / api sur mon navigateur mobile, il semble également inaccessible.


Je suis presque sûr que vous avez la mauvaise adresse IP. Vous devriez obtenir l'adresse IP locale. Quelle adresse IP utilisez-vous pour tester?


Vous avez l'IP de Windows 10 -> exécuter -> Cmd -> ipconfig -> IP v4


Pour l'instant, ngrok est la voie à suivre pour moi. Merci vmf91 pour votre persévérance.


Oui, avec ngrok, tout fonctionne. Merci d'avoir vérifié :).


ngrok Sauve ma vie dans ce problème!



0
votes

Bonne journée, Cela fonctionne

J'utilise l'IP de ma machine l'adaptateur Ethernet Ethernet 2: Adresse IPV4

Et autoriser mon port sur le pare-feu à la fois les règles entrantes et sortantes

 entrez la description de l'image ici


0 commentaires