Eliza Maria Ответов: 1

Метод Webservice GET не показывает список пользователей в xamarin android


Привет! У меня есть приложение xamarin.forms, в которое я добавил класс WebService, который будет получать список пользователей в моей базе данных.Для API я создал a asp.net основное веб-приложение, к которому я подключил свою локальную базу данных sqlite.Это мой класс веб-сервиса:
public class WebService
   {
       public static string BaseAddress =
   Device.RuntimePlatform == Device.Android ? "https://10.0.2.2:5001" : "http://192.168.87.107:5000";//using my local IP address and check to see the platform the app is running on
       public static string UsersUrl = $"{BaseAddress}/api/Users/";



       public async Task<ObservableCollection<User>> GetUser()
       {
           var httpClient = new HttpClient();
           var json = await httpClient.GetStringAsync(UsersUrl);
           var users = JsonConvert.DeserializeObject<ObservableCollection<User>>(json);
           return users;
       }

   }


Это мой класс UsersViewModel:
public class UsersViewModel : BaseViewModel
  {
      private WebService service = new WebService();
      public ICommand FetchDataUser { get; set; }
      public UsersViewModel()
      {
        //  FetchDataUser = new Command(FetchData);
          userService = new UserRepository();
          usersList = new ObservableCollection<User>();
          GetUsers();

      }
      private ObservableCollection<User> usersList;
      public ObservableCollection<User> UserList
      {
          get
          {
              return usersList;
          }
          set
          {
              if (usersList != null)
                  usersList = value;
              OnPropertyChanged("UserList");
          }
      }
     private async Task GetUsers()
      {
         usersList = await service.GetUser();

      }
  }

Когда я запускаю отладчик и ставлю точку останова,я вижу только url-адрес, используемый приложением, без каких-либо других записей.В.Сетевое приложение,я могу видеть записи в базе данных без каких-либо проблем,как в почтальоне, так и в браузере, поэтому я понятия не имею, почему такое поведение. Может ли кто - нибудь помочь мне в этом вопросе?Любая помощь будет оценена по достоинству.

Что я уже пробовал:

Я попытался перебрать список пользователей и добавить записи в коллекцию:
private async Task GetUsers()
      {
         usersList = await service.GetUser();
          foreach(User r in usersList)
          {
              usersList.Add(r);
          }
      }


Я попытался изменить свой локальный IP-адрес как с помощью "localhost", так и с помощью "127.0.0.1" и объявить отдельный url-адрес, который будет иметь api списка пользователей:
public string url = "http://127.0.0.1:5000/api/Users"

1 Ответов

Рейтинг:
7

Eliza Maria

Мне удалось найти решение для этого.Я использовал простое объявление url, но вместо 127.0.0.1 я использовал localhost для эмулятора Android, который является

10.0.2.2
и выглядит это примерно так:
public string url = "http://10.0.2.2:5000/api/Users"