OpenGeekBrains / Thoughts

MIT License
0 stars 14 forks source link

Простой пример работы MAUI с WebAPI #74

Closed artmanch closed 2 years ago

artmanch commented 2 years ago

65

Сделал совсем простой пример работы MAUI с WebAPI, т.к. задача стояла просто исследовать работает MAUI с WebAPI или нет. На эмуляторе Android все работает. На iOS не тестировал пока, поэтому информация дальше будет касаться только Android. У Android эмулятора все интересно в плане работы с localhost. Он не понимает, что это такое, и как я понял у него работа с localhost идет через свой адрес 10.0.2.2. Некий localhost для android эмулятора, который стучится на реальный localhost. Т.е. если вы попробуете через эмулятор или устройство Android стучаться к WebAPI по адресу localhost:, то не выйдет. У iOS, как я понял все нормально с этим, и он умеют стучаться по localhost. Для работы по https протоколу на localhost, нужно настраивать httphandler, такое нашел в гайде на MSDN. Отладку через реальное устройство так и не получилось настроить. Выдает ошибку, что устройство не может достучаться до адреса 10.0.2.2:port. Если поставить localhost вместо 10.0.2.2 для реального устройства, то тоже не работает, будет ошибка такая же, как если бы через эмулятор Android стучались до localhost. Пробовал менять в настройках WebAPI для Kestrel адреса запуска host и через них стучаться, в итоге эмулятор работал, мое устройство - нет, такая же ошибка в общем. Пробовал вместо localhost реальный адрес пк, тоже не работает. По http ошибка, что не может достучаться до адреса, по https, что ssl сертификат не установлен для хоста. Через iis express пробовал - не получилось, там тоже localhost, только на другом порту. Возможно, что-то не так делал, там много вариантов подключения. Но проблема эта обсуждается в интернете, а решения из коробки нет. Из всего этого прихожу к выводу, что кроме как размещение хоста не на localhost или на localhost, но с использованием стороннего ПО или плагинов нет, если захотим отлаживаться на реальном девайсе. Но в целом, есть эмулятор, который работает и его должно хватить для отладки, а уже работу на реальном девайсе надо тестировать на боевом хосте.

artmanch commented 2 years ago

Решил проверить проект. Последний коммит был лишним, забыл, что класс тот использую. А также тесты отвалились, т.к. трогал WeatherClient. Исправлю