Приложение Xamarin не может получить данные API из эмулятора, хорошо работает на физическом устройстве - PullRequest
0 голосов
/ 12 ноября 2018

Мое приложение не будет получать данные в эмуляторе. Сначала я подумал, что это целый эмулятор, но другие приложения, такие как youtube и chrome, могут нормально выходить в интернет. Я новичок в xamarin и C #, поэтому любая помощь будет оценена.

1 Ответ

0 голосов
/ 12 ноября 2018

Говоря об эмуляторе Android, 2 вещи для настройки:

  1. Вы бы использовали http://10.0.2.2:55858 вместо http://localhost:55858. Протокол и номер порта здесьПросто для примера, они зависят от настроек вашего серверного приложения.

  2. Проверьте, открывается ли ваш измененный адрес в Chrome внутри эмулятора.Если у вас есть Bad Gateway и тому подобное, перейдите к забавной части:

    • найдите каталог вашего решения, попав внутрь, найдите подкаталог ".vs / config".
    • open "applicationhost.config "в некотором текстовом редакторе, найдите строку адреса, например" localhost:55858 ".
    • предположим, что вы нашли что-то вроде:

      <bindings>
          <binding protocol="http" bindingInformation="*:55858:localhost" />
          <binding protocol="https" bindingInformation="*:44337:localhost" />
      </bindings>
      

теперь добавьте строки здесь, чтобы получить результат:

        <bindings>
            <binding protocol="http" bindingInformation="*:55858:localhost" />
            <binding protocol="https" bindingInformation="*:44337:localhost" />
            <binding protocol="http" bindingInformation="*:55858:127.0.0.1" />
            <binding protocol="https" bindingInformation="*:44337:127.0.0.1" />
        </bindings>

таким образом вы просите IIS Express перенаправить внешние запросы на ваш компьютер

  • закрыть Visual Studio
  • найдите значок запущенного IIS (если есть) на панели задач рядом с часами, щелкните его правой кнопкой мыши и закройте
  • , теперь вы можете запустить все заново, он подберет измененный "applicationhost".config "
...