Sto utilizzando l'API di recupero nella mia app Android nativa per effettuare richieste a un'API locale. Di solito chiedo a detta API di rispondere alle app web allo http://localhost:8163.React Native Android Recupero non riuscito sulla connessione all'API locale
Sto testando la mia app sul mio dispositivo fisico in modalità debugger. Ho letto da qualche parte che reagiscono: nativo non può interrogare localhost nello stesso modo in cui una app web può. A quanto pare devi usare http://10.0.2.2:[PORT_NUMBER_HERE]/
che è un alias per `http://127.0.0.1:[PORT_NUMBER_HERE] secondo i dock dell'emulatore Android. Non sono sicuro se questo è quello che dovrei fare per testare su un dispositivo fisico.
Il mio prendere codice è simile al seguente:
fetchToken() {
fetch('http://10.0.2.2:8163/extension/auth', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json'
}
})
.then((response)) => console.log('successful fetchToken response: ', response.json()))
.catch((error) => console.log('fetchToken error: ', error))
.done();
}
La richiesta pende sempre per un po 'e poi raggiunge il blocco catch
con l'errore inutile TypeError: Network request failed(...)
. Controllando i log per la mia API locale, essi non registrano affatto la richiesta.
Quindi non ho idea se sto interrogando la mia API locale correttamente per ottenere la risorsa che voglio, e se lo sono, non so perché il recupero sta fallendo.
sì, questo è perché il vostro emulatore di Android è una macchina diversa dal computer locale dev.Per un dispositivo fisico, è proprio come per testare da una macchina diversa: avere un sistema di risoluzione dei nomi o usare l'indirizzo IP – njzk2
@ njzk2 potresti elaborare? Sto avendo lo stesso problema ma non sono sicuro di cosa intendi con un sistema di risoluzione dei nomi? Uso l'indirizzo IP del mio computer come richiesto nei documenti nativi react. –
@ Andrea.cabral la risoluzione dei nomi viene solitamente eseguita da DNS. – njzk2