«Сбой сетевого запроса» при запросе на .Веб-служба NET с URL-портом, отличным от 80

#javascript #android #react-native #fetch

#javascript #Android #реагировать-родной #выборка

Вопрос:

Я пишу приложение React Native для запуска на телефоне Android. В приложении я буду извлекать данные из веб-службы .NET в локальной сети (используя порт 8085).

Когда я тестирую приложение на эмуляторе, выборка выполняется, как и ожидалось. Но когда я запускаю его на своем телефоне, выборка всегда завершается ошибкой Ошибка сетевого запроса (сервер и телефон находятся в одной локальной сети).

Я попытался изменить порт на 80, и приложение на моем телефоне заработало, как и ожидалось.

Я также отключаю все остальные веб-сайты в IIS, но та же проблема с портом <> 80.

Я провел некоторые исследования в Google (много раз он перенаправлял меня на SO и Github), но безуспешно.

Ниже приведена моя выборка:

   _getValue1 = async () => {
    try {
      const response = await fetch('http://192.168.1.165:8085/index.aspx/GetValue1', {
        body: JSON.stringify({ Usr: ... }),
        headers: {
          'accept': 'application/json; charset=utf-8',
          'content-type': 'application/json; charset=utf-8',
        },
        method: 'POST',
      });

      const json = await response.json();

      // do things with the json result
    }
    catch (err) {
      // always go here if run on real phone with url port other than 80
    }
  }

 

У кого есть опыт работы с этой проблемой, пожалуйста, помогите, заранее спасибо.

Комментарии:

1. Существует нечто, называемое брандмауэром, которое может блокировать порт. Поскольку вы используете IIS, вот ссылка для включения порта. tomshardware.com/news/… Просто включите требуемый порт. Я надеюсь, это поможет.

2. После того, как я разрешаю вход на порт 8085 в брандмауэре, все работает так, как ожидалось. Спасибо за помощь Шриваставу в комментарии.