React Native android извлекает ошибку сетевого запроса - PullRequest
0 голосов
/ 25 января 2019

Ладно, я в этом сообразительность.

Итак, в моем приложении React-Native я делаю запрос на выборку для ASP.NET Core API, размещенного в моей сети.

В моем API я настроил расширение Conveyor VS Code и могу нормально обращаться к API с любого устройства в моей сети, используя следующий URL: https://192.168.1.22:45455/api/users/login

Однако при запускеприложение через Expo, оно постоянно выдает мне ошибку сетевого запроса при попытке доступа к этому URL из React-Native.

это фактический вызов выборки:

const makeHeader = (token) => {
  return {Authorization: 'Bearer ' + token};
}
const authenticate = async (token) => {
  try {
    let res = await fetch(constants.backendUrl + 'users/login', {headers: makeHeader(token)});
    let user = await res.json();
    return user;
  } catch (error) {
    console.error(error);
  }
}

Я пропалчто-то в моих параметрах выборки?

Кроме того, при вызове метода authenticate он фактически проходит через оператор then.

authenticateUser = () => {
    AsyncStorage.getItem('token')
      .then(token => {
        authenticate(token)
          .then(user => {
            console.log({user}); // This fires and returns undefined
            this.setState({user})
          })

      });
  }

1 Ответ

0 голосов
/ 29 января 2019

Решил мою проблему, выполнив следующие действия:

  • Отключено расширение конвейера, так как оно не выполняет то, что мне было нужно
  • Отредактировал файл applicationhost.config проекта Visual Studio Project и добавил следующие строки
<bindings>
      <binding protocol="http" bindingInformation="*:60787:localhost" />
      <binding protocol="https" bindingInformation="*:44378:localhost" />
      <binding protocol="http" bindingInformation="*:60787:192.168.1.22" /> <!-- added this line -->
</bindings>
  • Установил ngrok и запустил ngrok http 60787 --host-header localhost для переадресации порта.
  • Изменил constants.backendUrl на любой URL, который мне дал ngrok, убедившись, что http используется через https
  • Открыл проект Visual Studio от имени администратора и запустил IIS Express

Я знаю, что для iOS вам нужно использовать https в ваших вызовах, но сейчас я занимаюсь разработкой для Android, и в целях разработки это будет работать до того, как я разверну API. Я попытался использовать https, и React-Native по какой-то причине не принял сертификат.

...