React Native https ax ios resquest получает сетевую ошибку на Android, но не iOS - PullRequest
0 голосов
/ 16 января 2020

Я создавал свое собственное приложение и использовал URL-адрес бэкэнда как http://123.123.123.123: порт / , и в процессе разработки все работало нормально. но когда я собрал свое приложение и установил его на устройство android, оно не сработало, и я помню, как кто-то говорил мне, что android по умолчанию разрешает только https запрос. поэтому я изменил URL-адрес на тот, который использует веб-приложение: https://example.com/api/ ... (не самозаверяющий сертификат TSL), и теперь android может отправлять запросы, но все они возвращаются как Network Error с (при сборке и при запуске на эмуляторе), но на симуляторе iOS работает нормально. Я новичок в разработке приложений и не могу найти какие-либо решения в Интернете. Может быть, есть опция, которую я пропускаю?

Мой топор ios setup, который отправляет запросы:

const customAxios = axios.create({
        baseURL: baseURL,
        timeout: 6000,
    });

...

const response = await customAxios.post('/login', {
        email,
        password,
    });

Стек ошибок:

Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:81)
    at XMLHttpRequest.dispatchEvent (event-target-shim.js:818)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:574)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:388)
    at XMLHttpRequest.js:501
    at RCTDeviceEventEmitter.emit (EventEmitter.js:189)
    at MessageQueue.__callFunction (MessageQueue.js:436)
    at MessageQueue.js:111
    at MessageQueue.__guard (MessageQueue.js:384)

Https URL работает на ios и веб-приложениях

1 Ответ

0 голосов
/ 17 января 2020

В вашем файле манифеста добавьте android:usesCleartextTraffic="true" внутри тега приложения.

<application
  xmlns:tools="http://schemas.android.com/tools"
  tools:replace="android:allowBackup"
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:usesCleartextTraffic="true">...
</application>
...