2015-04-27 45 views
10

Sto utilizzando l'API di recupero nativo react per ottenere dati JSON da https://api.github.com/users/{username} ma la richiesta non riesce con il seguente messaggio di errore.React Native Fetch Request non è riuscito

"TypeError: Network request failed {stack: (...), message: 'Network request failed'}".

credo per HTTPS, a volte si ottiene NSURLAuthenticationChallenge. Non sono sicuro di come implementarlo. Qualcuno ha qualche idea su questo?

+0

è difficile da dire senza il frammento di codice, ma potresti provare ad aggiungere '/' alla fine dell'URL che stai utilizzando. anche l'interpolazione viene eseguita usando '# {username}' – GoldenBeet

+0

Puoi fornire un codice minimo per riprodurre questo errore? Un modo per ottenerlo è provare a "recuperare" un URL non valido, ma non c'è modo di dire cosa lo abbia causato nel tuo caso senza che tu mostri del codice. –

risposta

-3

Hai provato XMLHttpRequest?

Come dimostrato in the doc, https è supportata da XMLHttpRequest:

var request = new XMLHttpRequest(); 
request.onreadystatechange = (e) => { 
    if (request.readyState !== 4) { 
    return; 
    } 

    if (request.status === 200) { 
    console.log('success', request.responseText); 
    } else { 
    console.warn('error'); 
    } 
}; 

request.open('GET', 'https://mywebsite.com/endpoint.php'); 
request.send(); 
+0

Nello stesso documento che hai postato, mostra che puoi anche fare https con Fetch –

2

Potete fornire un frammento di vostro codice fetch?

In generale, una dichiarazione fetch è scritto così:

fetch(requestURL) 
    .then((response) => response.json()) 
    .then((data) => { 
    this.setState({data: data}); 
    }) 
    .catch((error) => console.log(error)) 
    .done(); 

Facendo l'errore permetterà al programma di procedere senza schiantarsi.

0

Nel mio caso il problema non era nel codice. Ho iniziato l'emulatore quando non avevo una rete. Dopo aver effettuato l'accesso alla rete Wi-Fi, l'emulatore non funzionava ancora. Ho ricominciato l'emulatore: tutto funzionava.

Quindi:

  1. Connetti a rete.

  2. Riavviare l'emulatore.

Se non aiuta, quindi controllare il codice.

0

Avevo anche questo problema React Native Fetch Request Fails molto frequentemente.

Nel mio caso la risposta dalla chiamata API era di circa 5kb, quindi ho rimosso i dati non necessari dalla risposta dell'API e ridotto la dimensione del risultato a circa 1kb e tutto ha iniziato a funzionare.

Quindi prova a limitare i dati che stai richiedendo dall'API.

Problemi correlati