Android上React Native Axios上传图片返回网络错误

Spa*_*ony 3 android react-native axios

我尝试使用 上传一些数据,包括图像到服务器Axios。

它在 iOS 上完美运行,但在 Android 上,它返回了Network Error

const data = new FormData();
        data.append('tag', tag.METHOD_TAG_UPLOAD_PHOTO);
        data.append('app_version', 1);
        data.append('os_type', tag.OS_TYPE);
        data.append('store_code', kodetoko);
        data.append('photo', {
            uri: image_picked.uri,
            type: 'image/jpeg',
            name: judul + ".jpg"
        });
Run Code Online (Sandbox Code Playgroud)

我试图在其他地方寻找解决方案,他们说问题出在 的 对象内部type,photo它需要使用image/jpeg类型。我正在使用它,但它仍然返回Network Error。请帮忙。

ABM*_*ABM 6

我遇到了同样的问题,接受的答案对我不起作用。以下是对我有帮助的。

  1. 在 android/app/src/main/java/com/{yourProject}/MainApplication.java 中注释以下行:

    initializeFlipper(this, getReactNativeHost().getReactInstanceManager())
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在 android/app/src/debug/java/com/{yourProject}/ReactNativeFlipper.java 第 43 行注释中:

    builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
    
    Run Code Online (Sandbox Code Playgroud)
  3. 图片上传代码:

    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);
         });
    
    Run Code Online (Sandbox Code Playgroud)