J'exécute un téléchargement de photos à l'aide de l'API fetch et je continue de recevoir Type Error Network Request Error
. Je reçois la même erreur sur l'émulateur et un appareil. J'utilise react-native-image-crop-picker comme source pour les données de téléchargement de photos. Des pensées?
const handlePhotoUpload = async (image: any, token: string) => { const { path, filename, mime } = image; const uri = path.replace("file://", "") const file = { uri, type: mime, name: filename }; const body = new FormData() body.append('file', file) const config = { method: 'POST', headers: { 'Authorization': 'Bearer ' + token }, body }; return await fetch(`${<API URL>}/user/photo`, config) }
4 Réponses :
Si la manière dont vous l'envoyez est Android, la manière est incorrecte.
L'URI correcte est:
uri: Platform.OS === "android" ? path : path.replace("file://", "")
J'ai supprimé le fichier: /// mais j'ai eu une erreur réseau
@KhaledBoussoffara Les erreurs de réseau sont différentes des chemins.
J'ai rencontré le même problème, cela se produit sous Android, mais fonctionne bien sous IOS. je devinez ce problème concernant Flipper Network.
Pendant un moment, j'ai commenté initializeFlipper (ceci, getReactNativeHost (). getReactInstanceManager ())
dans ce fichier /android/app/src/main/java/com/{your_project}/MainApplication.java
Les étapes ci-dessous m'ont aidé à résoudre le même problème. Juste au cas où ça aiderait,
Dans android / app / src / main / java / com / {votreProjet} /MainApplication.java commentez la ligne ci-dessous:
var formData = new FormData(); formData.append('UserId', 'abc@abc.com'); formData.append('VisitId', '28596'); formData.append('EvidenceCapturedDate', '09/10/2019 13:28:20'); formData.append('EvidenceCategory', 'Before'); formData.append('EvidenceImage', { uri: Platform.OS === 'android' ? `file:///${path}` : `/private${path}`, type: 'image/jpeg', name: 'image.jpg', }); axios({ url: UrlString.BaseUrl + UrlString.imageUpload, method: 'POST', data: formData, headers: { Accept: 'application/json', 'Content-Type': 'multipart/form-data' }, }) .then(function (response) { console.log('*****handle success******'); console.log(response.data); }) .catch(function (response) { console.log('*****handle failure******'); console.log(response); });
Dans android / app / src / debug / java / com / {yourProject} /ReactNativeFlipper.java commentaire à la ligne 43:
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
Code pour le téléchargement d'image:
initializeFlipper(this, getReactNativeHost().getReactInstanceManager())
Je sais qu'il est tard pour répondre mais aidez les autres
suivez les étapes suivantes
Dans le répertoire de votre projet, cliquez sur le dossier android, puis ouvrez gradle.properties et changez la version du fliper en ceci
< pré> XXX
Vérifiez votre connexion Internet et si l'URL du serveur est accessible à partir de l'appareil. Joindre également une trace de pile complète de l'erreur.
Ce qui n'a pas de sens, c'est le fait que j'utilise la même URL de serveur pour d'autres appels d'API.
Qu'est-ce que
? Avez-vous ces variables?