Réagir Natif de la Requête Post via Fetch jette Réseau d'Échec de la Demande de
Ive suis tombé sur l'erreur suivante.
Au moment où je l'élaboration d'une Application Android avec Réagissent Natif, par conséquent, planification de la Gi à l'utilisation de fetch pour faire une requête post pour moi.
fetch("https://XXreachable-domainXX.de/api/test", {
method: "post",
body: JSON.stringify({
param: 'param',
param1: 'param',
})
}
)
.then((response) = > response.json()
)
.
then((responseData) = > {
ToastAndroid.show(
"Response Body -> " + JSON.stringify(responseData.message), ToastAndroid.SHORT
)
})
.
catch((error) = > {
console.warn(error);
})
;
Dès maintenant l'application renvoie une erreur:
TypeError: Réseau d'échec de la demande de
Quand j'ai modifier le code pour une Demande de travail de l'amende, dans le navigateur avec une fenêtre.alert() comme un retour à ses frais et l'extension chrome Facteur renvoie les données correctement.
- Veuillez vous référer foillowing lien: github.com/facebook/react-native/issues/...
- Si quelqu'un a ce problème sur iOS, assurez-vous que vous utilisez le protocole https et pas seulement http. Les paramètres par défaut sont uniquement à la charge https.
- Comment modifier les paramètres à l'appui de HTTP?
- Vous devez approuver les domaines dans
info.plist
. stackoverflow.com/questions/38418998/... - Même si l'on n'est pas en ligne un écran rouge en disant: demande de Réseau n'a pas l'air bon, il est un moyen de gérer cela au propre comme une alerte ou quelque chose..
Vous devez vous connecter pour publier un commentaire.
Réagir ce Natif de l'erreur est plutôt inutile, si vous avez besoin d'obtenir le véritable sous-jacentes d'erreur première. La façon la plus simple est d'écrire un petit natif programme, il suffit de faire la même requête à l'aide de
HttpsURLConnection
.Pour moi, l'erreur a été
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
qui a une solution connue: https://developer.android.com/training/articles/security-ssl.html#MissingCa
C'est tout à fait probable que votre cas aussi, étant donné que les navigateurs et Facteur n'ai aucun problème avec la demande. Pour le vérifier exécuter
openssl s_client -connect XXreachable-domainXX.de:443 -showcerts
. Si il y a des erreurs de certificat, fixer d'abord, il peut économiser du temps de l'écriture de la maternelle programme.Edit: en fait le moyen le plus facile pour voir tous les sous-jacents android erreurs pour réagir natif est tout simplement en train de 'adb logcat" dans le terminal
Développement avec le système d'exploitation Windows/PHP/serveur de réagir natif d'Android sur l'appareil:
ipconfig
), par exemple 172.16.0.10fetch
utiliser cette URL et le port approprié (fetch('http://172.16.0.10:8000/api/foo)
)php -S 172.16.0.10:8000 ...
Qui a résolu le problème de connexion entre le téléphone Android et le serveur local pour moi.
localhost
pour mon IP locale a fait le tour, peut-être un bug d'analyselocalhost
?Si vous avez eu cette erreur et vous êtes sûr que tout fonctionne bien et vous exécutez un émulateur, il suffit de fermer votre émulateur et le feu de nouveau.
Il devrait fonctionner maintenant.
Cela se produit généralement après avoir hiberné votre système pendant un certain temps
J'ai eu un problème important de faire de même sur l'émulateur android. Sur iOS approuvant le domaine de l'info.plist était nécessaire. Pour être clair, je tente de me connecter à mon .NET web hébergé par l'API.
Le correctif a été assurez-vous que le post de données a été paramétré.( Je suis assez sûr que c'est un mot)
Vérifier les deux cas soufflet
Elle a mangé 2 heures avec la deuxième raison.
Si vous rencontrez ce problème sur émulateur assurez-vous aussi de le tester sur l'appareil. C'est probablement pas qui se passe.
Si vous le savez il n'y a rien à vous soucier si vous pouvez travailler autour d'elle.
J'ai eu ce problème sur Android grâce à un certificat expiré. Le message d'erreur que j'ai eu était
com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Fri Sep 29 16:33:39 EDT 2017 (compared to Fri Dec 08 14:10:58 EST 2017)
.J'ai été en mesure de confirmer cette aide digicert.com.
Malheureusement, je n'ai eu à creuser assez profond dans la Réagir en code Natif et déboguer le code XHR dans le bundle
(index.android.bundle)
afin de trouver le message d'erreur et l'URL en question, parce qu'il a été dans certains de mon code d'enregistrement, ce qui évidemment je n'ai pas le journal de la console ainsi. 🙂J'ai été aidé par cette GitHub question commentaire.