Как мне обнаружить и отобразить сообщение об ошибке HTTP (404) на Xamarin, если я использую оболочку API? - PullRequest
0 голосов
/ 03 мая 2019

В настоящее время я использую Xamarin для создания мультиплатформенного приложения для телефона. Идея приложения - это, по сути, энциклопедия Pokemon, в которой используется PokeAPi (https://pokeapi.co/), а также используется следующая библиотека-обертка (https://gitlab.com/PoroCYon/PokeApi.NET).). В настоящее время я хочу получить информацию о том, где, если пользователь вводит неверный Pokemon в Панель поиска возвращает пользователю предупреждение об ошибке. Однако, каждый раз, когда я проверяю его и ввожу недопустимого покемона, приложение останавливается, и Visual Studio / Xamarin сообщает мне об ошибке HTTP404. Как мне поступить об этом?

Я попытался использовать операторы сравнения, где, если вызов API не находит имя покемона, он должен появиться с предупреждением, но VS / Xamarin прекратит запуск приложения и отобразит исключение Http404. Я действительно не знаю, куда идти в этот момент.

'' '

  async Task PullData()
    {
     LoadingIcon.IsRunning = true;

     string newPokemon = PokemonFind.Text;

     Pokemon p = await DataFetcher.GetNamedApiObject<Pokemon>(newPokemon);


     string PokemonName = p.Name;
     int PokemonHeight = p.Height;
     int PokemonWeight = p.Mass;
     int PokemonXp = p.BaseExperience;
     int PokemonOrder = p.Order;

     OrderLabel.Text = "#" + PokemonOrder;
     NameLabel.Text = "Name: " + PokemonName;
     HeightWeightLabel.Text = "Height/Weight: " + PokemonHeight.ToString() +" dm " + "/" + PokemonWeight.ToString() + " hg";
     ExpLabel.Text = "Experience on defeat: " + PokemonXp.ToString() + "XP";


        LoadingIcon.IsRunning = false;

    }

'' '

Я ожидал, что вместо сообщения VS / Xamarin, который остановит программу и выдаст мне исключение HTTP404, появится сообщение с предупреждением.

1 Ответ

0 голосов
/ 03 мая 2019

Оберните ваш звонок в блоке try / catch

 try
 {
      async Task PullData()
 }
 catch(HttpRequestException ex)
 {
    //Shows an alert error to the user
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...