Как устранить ошибку «Невозможно разрешить хост»? - PullRequest
2 голосов
/ 13 июня 2019

Я работаю над формами ксамарина. Где я использую API. Когда я запускаю приложение в Android 5, оно работает нормально, но если я использую 7+, оно выдает ошибку типа

Невозможно разрешить хост "almsdev.southeastasia.cloudapp.azure.com": адрес, связанный с именем хоста, отсутствует.

Как решить эту проблему?

Ниже приведен фрагмент кода:

public async Task<HttpResponseMessage> Login(string EmailOrMobile)
    {
        try
        {

            var responseTask = await client.GetAsync(OauthBaseUrl + "OAuthSAAS/MSLogin?UserCredentials=" + EmailOrMobile);
            return responseTask;
        }
        catch (Exception ex)
        {
            Crashes.TrackError(ex);
            return null;
        }
    }

При нажатии кнопки я вызываю вышеуказанный метод

 private async void fn_Submit_Clicked(object sender, EventArgs e)
 {  
    var response = await _oauthService.Login(txt_credentails.Text.Trim()); 
 }

Мой базовый URL-адрес
http://almsdev.southeastasia.cloudapp.azure.com:81/api/

Я использую Http клиент = новый Http ();

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Попробуйте добавить учетные данные для входа в ваш HTTP-клиент заголовка.

0 голосов
/ 13 июня 2019

Поскольку вы нацелены на Android 9.0 (уровень API 28), поддержка открытого текста (не HTTPS) по умолчанию отключена. Чтобы преодолеть это, вы можете: либо использовать HTTPS, либо добавить конфиги, чтобы разрешить трафик http.

Сначала в вашем Android Project создайте папку: xml и добавьте файл network_security_config

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">almsdev.southeastasia.cloudapp.azure.com</domain>
  </domain-config>
</network-security-config>

Тогда в вашем Manifest.xml

   <application android:label="YourAppName" android:networkSecurityConfig="@xml/network_security_config">

Вы можете прочитать больше в блоге Xamarin

...