4

I have been trying to create an android app using nativescript.I am using fetch module to get response from my server.When I am trying to get response from httpbin.org/get ,it is OK.But when I am trying to get response from my local server,I am getting Network Request Failed. error.

Sending to httpbin.org/get-

return fetchModule.fetch("https://httpbin.org/get").then(response => { return response.text(); }).then(function (r) {
        console.log(r);
    }, function (e) {
            console.log(e);
        }); 

Sending to localhost:8000/api-

return fetchModule.fetch("http://localhost:8000/api").then(response => { return response.text(); }).then(function (r) {

       console.log(r);

}, function (e) {

        console.log(e);
    });

When I try to get response from localhost:8000/api in pure node.js via the request module.It worked fine.But now,I don't to know how to solve this in nativescript using fetch module.

Asm Arman
  • 359
  • 6
  • 24

2 Answers2

8

Instead, localhost (usually 127.0.0.1) use 10.0.2.2 (if using AVD emulator)

10.0.2.2  - Special alias to your host loopback interface 
(i.e., 127.0.0.1 on your development machine)

For GenyMotion emulator the loopback address is 10.0.3.2

Nick Iliev
  • 9,610
  • 3
  • 35
  • 89
  • Like this- 10.0.2.2/api Or 10.0.2.2:8000/api like this? – Asm Arman Oct 10 '16 at 14:04
  • Please help me here too https://superuser.com/questions/1449269/how-can-i-address-my-emulator-to-my-localhost-with-my-ip-address?noredirect=1#comment2186484_1449269 – Hasani Jun 19 '19 at 04:21
  • @user145959 you should use `https://10.0.2.2` instaed `http://localhost` ... The IP address 192.168.x.x (indicates an address in the local network) has nothing to do with the loopback address so I am not sure why are you trying to use it in the first place. – Nick Iliev Jun 19 '19 at 12:27
  • @NickIliev: I changed my code like this export const `baseURL = "https://10.0.2.2:3000";` but didn't work. I updated my question – Hasani Jun 19 '19 at 14:34
0

Emulator API Path:- http://10.0.2.2:5000. Like Your API Local Path Is http://198.168.1:5000/api or http://localhost:5000/api Then Replace With http://10.0.2.2:5000/api And Port Address Is Same Like As Your Local API Port.

Path- App_resources/Android/src/main/AndroidManifest.xml :-

android:usesCleartextTraffic="true" Add in application tag

taha shahid
  • 717
  • 5
  • 5