apisauce: Getting NETWORK_ERROR after upgrade react-native to v0.59.9

This is error stack:

"Error: Network Error
    at createError (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:202353:17)
    at XMLHttpRequest.handleError (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:202261:16)
    at XMLHttpRequest.dispatchEvent (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30335:27)
    at XMLHttpRequest.setReadyState (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30088:20)
    at XMLHttpRequest.__didCompleteResponse (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:29915:16)
    at http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:30025:47
    at RCTDeviceEventEmitter.emit (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:5939:37)
    at MessageQueue.__callFunction (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:5232:44)
    at http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:4989:17
    at MessageQueue.__guard (http://localhost:8081/index.bundle?platform=android&dev=true&minify=false:5186:13)"

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Reactions: 5
  • Comments: 18 (2 by maintainers)

Most upvoted comments

Solution for my case is to ignore certificate. I update OkHttpClient inside onCreate() in MainApplication.java, credit to this gist

@Override
public void onCreate() {
  super.onCreate();
  OkHttpClientProvider.setOkHttpClientFactory(() -> {
    OkHttpClient.Builder builder = new OkHttpClient.Builder();
    try {
      // Create a trust manager that does not validate certificate chains
      final TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {
          @SuppressLint("TrustAllX509TrustManager")
          @Override
          public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
            throws CertificateException {
          }
          @SuppressLint("TrustAllX509TrustManager")
          @Override
          public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
            throws CertificateException {
          }
          @Override
          public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return new java.security.cert.X509Certificate[]{};
          }
        }
      };
      // Install the all-trusting trust manager
      final SSLContext sslContext = SSLContext.getInstance("SSL");
      sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
      // Create an ssl socket factory with our all-trusting manager
      final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
      builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]);
      builder.hostnameVerifier(new HostnameVerifier() {
        @SuppressLint("BadHostnameVerifier")
        @Override
        public boolean verify(String hostname, SSLSession session) {
          return true;
        }
      });
    } catch (Exception e) {
      //
    }
    return builder
      .cookieJar(new ReactCookieJarContainer())
      .build();
  });
  SoLoader.init(this, /* native exopackage */ false);
  initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}

@songxiaoliang i am facing the exact same issue, were you able to get a solution for it? Related to Android P, see facebook/react-native#22375 and https://github.com/facebook/react-native/issues/22375#issuecomment-481251422