Сбой решения проблемы с HTTP Post запросом.

#c# #android #visual-studio #xamarin #xamarin.android

#c# #Android #visual-studio #xamarin #xamarin.android

Вопрос:

Я пишу приложение для Android с использованием Xamarin. У меня есть экран входа в систему с двумя полями EditText.

Мне нужно написать код для запроса входа в систему через HTTP POST запрос.

У меня есть этот код:

  Button signin = FindViewById<Button>(Resource.Id.btn);
        var email = FindViewById<EditText>(Resource.Id.username);
        var password = FindViewById<EditText>(Resource.Id.password);

        email_data = email.Text;
        password_data = password.Text;

        signin.Click  = async delegate
        {


            if (string.IsNullOrEmpty(email.Text))
            {
                Toast.MakeText(this, "Please, fill email", ToastLength.Long).Show();
            }
            if (string.IsNullOrEmpty(password.Text))
            {
                Toast.MakeText(this, "Please, fill password", ToastLength.Long).Show();
            }
            else
            {
                var client = new HttpClient();
                var content = new StringContent(
                    JsonConvert.SerializeObject(new { username = email_data, password = password_data }));
                var result = await client.PostAsync("http://stg-api.tieit.io/auth/login", content).ConfigureAwait(false);
                if (result.IsSuccessStatusCode)
                {
                    var tokenJson = await result.Content.ReadAsStringAsync();
                    Console.WriteLine(tokenJson.ToString());
                }

                var intent = new Intent(this, typeof(HomeView));
                StartActivity(intent);

            }
        };
  

Но когда я нажимаю signin кнопку, у меня возникает эта ошибка.

System.Net.WebException: Error: NameResolutionFailure

Необработанное исключение: 10-05 12:06:26.877 E / mono (27175): System.Net.WebException: Ошибка: ошибка разрешения имен 10-05 12:06:26.877 E / mono-rt (27175): [ОШИБКА] ФАТАЛЬНОЕ НЕОБРАБОТАННОЕ ИСКЛЮЧЕНИЕ: System.Net.WebException: Ошибка: ошибка разрешения имен 10-05 12:06:26.889 I/IspDrv (27175): {IspDrv} [~IspDrvImp]

Как я могу это решить?

Спасибо за помощь

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

1. Вы проверили разрешения приложения? Эта ошибка может возникнуть, если у приложения нет прав на доступ к Интернету.

2. вы говорите об ACESS_NETWORKSTATE и Internet ? @auX

3. Я проверяю, они включили @auX

4. какова ваша реализация HttpClient. Это в настройках Android в свойствах, в разделе Дополнительно? К вашему сведению, если пользователь оставляет электронное письмо пустым и вводит пароль, оно попадет в else statment и post .

5. Не понял ваш вопрос? @InitLipton

Ответ №1:

Я только что сделал nslookup для stg-api.tieit.io и никакого результата возвращено не было, однако я получаю IP-адрес для tieit.io . Если поддомен stg-api.tieit.io находясь в частной сети, ваш код должен выполняться на устройстве в той же частной сети. Если этот поддомен должен быть в Интернете, вам необходимо создать запись DNS для stg-api.tieit.io чтобы сопоставить его с IP-адресом. Поговорите со своим ИТ-менеджером, если у вас нет контроля над записями DNS для этого домена.