0
votes

La demande réseau a échoué sur le périphérique Android à l'aide de la récupération

J'ai une erreur "Demande de réseau a échoué" lorsque vous utilisez la récupération de Native sur l'émulateur Android / Dispositif réel. Le code est ci-dessous:

 fetch('http://localhost:3000/response', {
      method: 'POST',
      headers: {
          Accept: "aplication/json;charset=UTF-8",
          "Content-Type": "application/json"
      },
      body:JSON.stringify({name: "abc", email: "something@gmail.com"}),
      })
      .then((response) => response.json())
      .then((responseJson) => {

          alert('response object:' + JSON.stringify(responseJson));

          if(responseJson.valid === true){
              // do something

          }

      })
      .catch((error) => {
        console.error(error);
        alert(error);
      });

    });


2 commentaires

Avez-vous essayé de faire ////droid: utiliseCleartextTraffic = "vrai" // en manifeste Android


J'utilise Expo pour déployer l'application


3 Réponses :


0
votes

Utiliser Secure Server Links HTTPS, il devrait fonctionner pour vous


1 commentaires

J'ai trouvé une solution. Il suffit de remplacer «localhost» par '10.0.2.2 '' pour l'émulateur Android, alors cela a fonctionné.



1
votes

Vous avez 2 options:

  • soit implémenter HTTPS pour votre point d'extrémité API en tant que Neelam mentionné
  • ou ajoutez ClearTextTraffic True dans votre AndroidManifest en tant que ABD mentionné ici est comment vous pouvez le faire: xxx

1 commentaires

Merci. La première option ne fonctionne pas, j'utilise Expo pour l'application de déploiement afin qu'il n'y ait pas de fichier AndroidManifest, mais un fichier de configuration app.json à la place



0
votes

réact de Native n'est pas fonctionné lorsque vous récupérez l'URL localhost, au lieu de localhost, vous êtes censé mettre une adresse IP pour vous assurer que les périphériques sont situés dans un réseau. Il suffit de remplacer localhost avec votre adresse IP. Et assurez-vous de connecter votre mobile avec le même wifi ou le même réseau.

fetch('http://yourIPaddress:3000/response', {
      method: 'POST',


2 commentaires

Remercier. Oui, j'ai connecté mon téléphone à la machine via USB, changeant localhost sur mon adresse IP de la machine, mais rien n'a fonctionné!


Vérifiez votre appel API de Postman.