Xamarin Android вызывает сбой подключения к WebAPI

Я создал приложение в Xamarin, приложение будет вызывать WebAPI для входа в систему и получения данных с сервера.

WebAPI - это http, а не https.

Вызов успеха веб-API в эмуляторе iOS, устройстве iOS и эмуляторе Android. (У меня нет Android-устройства для тестирования).

Но при развертывании для пользователя с помощью телефона Android вызов веб-API завершается ошибкой с сообщением об ошибке Connection Fail.

Понятия не имею, почему это произошло. Пожалуйста, посоветуйте мне, что я могу проверить.

Спасибо


person ruby.lee    schedule 22.04.2020    source источник
comment
Какое подробное сообщение об ошибке? Есть ли код ошибки?   -  person ColeX - MSFT    schedule 22.04.2020
comment
Сообщение об ошибке должно быть перехватом сообщения из исключения, оно показывает только сбой подключения. Мне пришлось изменить программу, чтобы узнать, можно ли вернуть дополнительную информацию об ошибке. Ожидает ответа пользователя.   -  person ruby.lee    schedule 22.04.2020


Ответы (2)


Проверьте, правильно ли задан параметр в свойствах.

Реализация HttpClient - ›Android

Реализация SSL / TLS - ›Собственный TLS 1.2+

введите описание изображения здесь

Обновлять

Добавьте android:networkSecurityConfig="@xml/network_security_config" в AndroidManifest.

Создайте новый xml с именем network_security_config.xml, добавьте его в папку res / xml.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
     <base-config cleartextTrafficPermitted="true" />
</network-security-config>
person ColeX - MSFT    schedule 23.04.2020
comment
Сервер WebAPI не настроен с сертификатом SSL, URL-адрес начинается с http. - person ruby.lee; 23.04.2020
comment
Запрос https требуется после Android 9.0, если вы все еще хотите запросить с помощью http, вы должны объявить что-то в манифесте, проверьте мое обновление ниже. - person ColeX - MSFT; 28.04.2020

Убедитесь, что ваш эмулятор Android настроен правильно и подключен к Интернету.

person Dani    schedule 22.04.2020
comment
Нет, эмулятор Android может успешно вызывать WebAPI, он не работает при запуске на реальном устройстве Android. - person ruby.lee; 23.04.2020