2015-11-28 25 views
15

React Native kullanarak basit bir uygulama geliştiriyorum. Android cihazında test ediyorum. İstekleri dinlemek için bir Node.js sunucusu oluşturdum, http://localhost:3333/ adresinde çalışıyor. Sonraki, index.android.js adresinden bir istek isteği yapıyorum. Kod aşağıdadır.React Native: Getirme isteği hatayla başarısız oldu - TypeError: Ağ isteği başarısız oldu (…)

fetch('http://localhost:3333/', 
     { 
      'method': 'GET', 
      'headers': { 
       'Accept': 'text/plain',          
      } 
     }  
    ) 
.then((response) => response.text()) 
.then((responseText) => { 
    console.log(responseText); 
}) 
.catch((error) => { 
    console.warn(error); 
}); 

düğüm sunucuda istek işleyicisi için kod yakalama isteği çalışmıyor, aşağıda

app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 
app.use(express.static('public')); 
app.get('/', function(req, res){ 
    console.log('Request received for /'); 
    res.send("this is the response from the server"); 
    res.end(); 
}); 

olduğunu ama. Chrome konsolunda aldığım hata: TypeError: Ağ isteği başarısız oldu (…).

Bu iş nasıl yapılır?

cevap

27

Android cihazınızda bir IP adresi bulunduğundan, URL'yi yalnızca localhost yerine bilgisayarınızın IP adresine yönlendirmeniz gerekir. Örneğin fetch('http://192.168.0.2:3333/').

+0

Teşekkür cihaz bağlantı noktası 8081 yönlendirir! İşe yaradı. – Chetan

+0

URL'ye çağrı yapıyorum ama yine de aynı hatayı alıyorum. getirme ('http://private-18642-test2979.apiary-mock.com/notes/1', { yöntemi: { 'Kabul: 'başlıklar',' elde 'uygulama/json' , } –

+0

Bu gerçekten bir URL değildir, protokolü de eklemeniz gerekir – oblador

10

Kullanım Android Debug Bridge aracı (adb) ait ters komut: Örneğin

adb reverse <remote> <local> - reverse socket connections. 
           reverse specs are one of: 
           tcp:<port> 
           localabstract:<unix domain socket name> 
           localreserved:<unix domain socket name> 
           localfilesystem:<unix domain socket name> 

:

adb reverse tcp:3333 tcp:3333 

Bu cihazdan erişilebilir localhost:3333 yapar. Farklı portları da kullanabilirsiniz. Örneğin:

adb reverse tcp:8081 tcp:3333 

Bu hizmet portuna 3333

İlgili konular