facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
119.55k stars 24.37k forks source link

[React Native] EXPO - AxiosError: Network Error on Android but not on IOS #39622

Closed Mathissou01 closed 1 year ago

Mathissou01 commented 1 year ago

Description

### Describe the bug

On Android, with Axios my request is returning "AxiosError: Network Error". But it all work fine on IOS and with POSTMAN too.

The api call uses HTTPS and is not local

### Solution tried: I have tried many headers type but none works. Also the ""usesCleartextTraffic": true" in "AndroidManifest.xml" and with "expo-build-properties" is not doing anything. Downgrading axios at any version do not change anything. The SSL respond good when I test them with some website SSL tester online. All the TLS1, TLS2, TLS3 are working.

Can you please explain to me what is wrong? Thank you in advance.

### Code snippet of the API request:


const BASE_URL = process.env.EXPO_PUBLIC_API_URL;

const AUTH_URL = `${BASE_URL}auth/`;
const API_URL = `${BASE_URL}api/`;

export async function auth(
  username: string,
  password: string,
  withStoreUpdate: boolean = false
): Promise<{ isAuth: boolean; currentUser?: object }> {
  try {
    const data = { username, password };

    console.log("Auth is Starting");
    const response = await axios({
      method: "POST",
      url: `${AUTH_URL}login`,
      headers: {
        // Set the Content-Type to application/json
        "content-type": "multipart/form-data",
        // Set the Authorization header to JWT followed by the actual token
        authorization: "JWT",
        // Set the Accept header to application/json
        accept: "application/json",
        // You may not need this unless you are making cross-origin requests
        "ccess-Control-Allow-Origin": "*",
      },
      data,
    })
      .then((response: { data: apiData }) => {
        return response.data;
      })
      .catch((error: any) => {
        throw new Error(error);
      });

    myInfos = response;

    if (response) {
      const newAmbassador = new Ambassador(response.user);

      if (withStoreUpdate)
        store.dispatch(
          updateUserWithLocalStorage({
            ...newAmbassador.json,
            password: password,
            accessToken: response.accessToken,
          })
        );
      else
        store.dispatch(
          updateUserInfos({
            ...newAmbassador.json,
            accessToken: response.accessToken,
          })
        );

      return { isAuth: true, currentUser: newAmbassador };
    } else return { isAuth: false };
  } catch (error) {
    if (error.response) {
      console.log("icierror");
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
    } else {
      console.log("the error goes here");
      // Something happened in setting up the request that triggered an Error
      console.log("Error", error.message);
    }
    return { isAuth: false };

### Additional Library Versions :

"dependencies":` { "@expo/config-plugins": "~7.2.2", "@react-native-async-storage/async-storage": "1.18.2", "@react-native-masked-view/masked-view": "0.2.9", "@react-navigation/bottom-tabs": "^6.5.8", "@react-navigation/native": "^6.1.7", "@react-navigation/native-stack": "^6.9.13", "@react-three/fiber": "^8.13.7", "@reduxjs/toolkit": "^1.9.5", "axios": "1.3.4", "babel-plugin-react-native-classname-to-dynamic-style": "^0.22.0", "babel-plugin-react-native-classname-to-style": "^1.2.2", "babel-plugin-react-native-platform-specific-extensions": "^1.1.1", "chroma-js": "^2.4.2", "expo": "~49.0.11", "expo-asset": "~8.10.1", "expo-checkbox": "~2.4.0", "expo-constants": "~14.4.2", "expo-device": "~5.4.0", "expo-exotic-asset": "^1.0.4", "expo-file-system": "~15.4.4", "expo-gl": "~13.0.1", "expo-linear-gradient": "~12.3.0", "expo-media-library": "~15.4.1", "expo-notifications": "~0.20.1", "expo-splash-screen": "~0.20.5", "expo-status-bar": "~1.6.0", "expo-system-ui": "~2.4.0", "expo-three": "^7.0.0", "lottie-react-native": "5.1.6", "metro-react-native-babel-transformer": "^0.77.0", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.72.4", "react-native-animatable": "^1.3.3", "react-native-calendars": "^1.1300.0", "react-native-date-picker": "^4.3.3", "react-native-dropdown-picker": "^5.4.6", "react-native-extended-stylesheet": "^0.12.0", "react-native-form-component": "^2.6.12", "react-native-gesture-handler": "~2.12.0", "react-native-keyboard-aware-scroll-view": "^0.9.5", "react-native-reanimated": "~3.3.0", "react-native-safe-area-context": "4.6.3", "react-native-screens": "~3.22.0", "react-native-stylesheet-plus": "^0.3.0", "react-native-svg": "13.9.0", "react-native-view-shot": "3.7.0", "react-native-web": "~0.19.6", "react-redux": "^8.1.2", "three": "^0.145.0", "expo-build-properties": "~0.8.3" }

React Native Version

0.72.4

Output of npx react-native info

System: OS: Windows 10 10.0.19045 CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz Memory: 7.15 GB / 15.77 GB Binaries: Node: version: 18.16.0 path: C:\Program Files\nodejs\node.EXE Yarn: version: 1.22.19 path: C:\Program Files\nodejs\yarn.CMD npm: version: 9.5.1 path: C:\Program Files\nodejs\npm.CMD Watchman: Not Found SDKs: Android SDK: Not Found Windows SDK: AllowAllTrustedApps: Disabled IDEs: Android Studio: Not Found Visual Studio: Not Found Languages: Java: Not Found Ruby: Not Found npmPackages: "@react-native-community/cli": Not Found react: installed: 18.2.0 wanted: 18.2.0 react-native: installed: 0.72.4 wanted: 0.72.4 react-native-windows: Not Found npmGlobalPackages: "react-native": Not Found Android: hermesEnabled: true newArchEnabled: false iOS: hermesEnabled: Not found newArchEnabled: Not found

Steps to reproduce

none

Snack, screenshot, or link to a repository

none

devoren commented 1 year ago

is it works locally? if it does not work , check error response and request

github-actions[bot] commented 1 year ago
:warning: Issue is Related to Expo
:information_source: It looks like your issue is related to Expo and not React Native core. Please open your issue in Expo's repository. If you are able to create a repro that showcases that this issue is also happening in React Native vanilla, we will be happy to re-open.
LeonardoAlporges commented 1 year ago

Mesmo problema por aqui

za-rakib commented 10 months ago

Any solution??