zoukankan      html  css  js  c++  java
  • react-native 上传文件时报错,Network request failed

    报错情景:

      版本:

    "react": "16.13.1",
    "react-native": "0.63.2",
    

      fetch的其他请求都可以,但是上传文件报错。其实,查找文档可知,0.62.0版本以上都有这个问题。代码回滚到RN 0.61.5版本就不会有以上问题。

      报错内容: 请求没有到后台,报错 ‘Network request failed’

    问题出现原因

      Flipper Network构建initializeFlipper时出现的问题。

    解决办法:

      (1)Flipper Network构建initializeFlipper时出现的问题。   

        找到/android/app/src/main/java/com/{your_project}/MainApplication.java

        将initializeFlipper(this, getReactNativeHost().getReactInstanceManager())注释

    NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
          NetworkingModule.setCustomClientBuilder(
              new NetworkingModule.CustomClientBuilder() {
                @Override
                public void apply(OkHttpClient.Builder builder) {
         //        builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
                }
             });
    

      或者找到android/app/src/debug/java/com/**/ReactNativeFlipper.java文件注释43行

      

    38 NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
    39      NetworkingModule.setCustomClientBuilder(
    40          new NetworkingModule.CustomClientBuilder() {
    41            @Override
    42            public void apply(OkHttpClient.Builder builder) {
    43      //        builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
    44            }
    45          });
    46      client.addPlugin(networkFlipperPlugin);

      (2)Flipper 已经在0.39.0版本修复了问题的一部分,之所以说是一部分,是因为我升级到0.39.0+以后仍有问题,我测试到升级Flipper 0.51.2仍然报错,但是解决了部分人的问题,比如RN0.62.0版本。

        Flipper升级方法:

        转到android/gradle.properties并添加此行

    FLIPPER_VERSION=0.52.1
    

        同时在android/app/build.gradle其中包含以下几行

    dependencies {
        // ....
    
        debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
          exclude group:'com.facebook.fbjni'
        }
    
        debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
            exclude group:'com.facebook.flipper'
        }
    
        debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
            exclude group:'com.facebook.flipper'
        }
    
        // ...
    }

      (3)如果有人在RN 0.62或更高版本中仍然遇到问题,解决方案是:必须提供uri,名称和要上载的媒体类型。

      

    formData.append('media_incident', {
              uri: image.path,
              type: image.mime,
              name: 'filename.jpg',
            });

      8个小时解决了这个问题!!!

      如果解决了您的问题,麻烦点个赞被!

      Enjoy Coding,enjoy life!(原创)

  • 相关阅读:
    关于ADMM的研究(一)
    BAT染指影视制作 欲全面撬开互联网粉丝经济
    把安卓源代码中的system app独立出来,像开发普通app那样开发
    Java数学表示式解析工具- jeval
    android monkey
    tomcat URL简写案例:模拟站点www.baidu.com的訪问
    Ajax 跨域请求 jsonp获取json数据
    Android 开源项目android-open-project解析之(三) ScrollView,TimeView,TipView,FlipView
    iOS-获取UIView的全部层级结构
    定制属于自己的Chrome起始页
  • 原文地址:https://www.cnblogs.com/dsweb/p/13650652.html
Copyright © 2011-2022 走看看