Xamarin Формирует IOS, запрос API возвращает Подключение к Интернету, которое, по-видимому, отключено

#ios #iphone #xamarin.forms

Вопрос:

Я работаю над проектом Xamarin Forms для IOS, при выполнении запроса к любому API он отправляет мне следующую ошибку:

«Домен ошибки=NSURLErrorDomain Код=-1009 «Подключение к Интернету, похоже, отключено». userInfo={…»

Мой метод:

 public async Task<T> PostResponse<T>(string weburl, string jsonstring) where T : class
  {
     try
         {
            GetDefaultHeaderBearer();
            HttpResponseMessage httpResponseMessage = await client.PostAsync(weburl, new StringContent(jsonstring, Encoding.UTF8, "application/json"));
            string jsonResult = await httpResponseMessage.Content.ReadAsStringAsync();
            return JsonConvert.DeserializeObject<T>(jsonResult);
               
         }
         catch (Exception e)
         {
           throw new Exception(e.Message);
         }
  }
 

Сервер моего Api размещен на локальном сервере Linux, к которому я могу получить доступ через Wi-Fi на своем устройстве Iphone (без симулятора). Я могу получить доступ к API-интерфейсам из safari, но приложение xamarin возвращает эту ошибку при попытке выполнить какой-либо запрос.

Моя среда разработки-Windows 10 pro с версией Visual Studio 2019 v16.11.2. Nuget:

  • Ксамарин.Формы 5.0.0.2125. Ксамарин.Основы 1.7.0. NetStandard.Библиотека 2.0.3.

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

1. Google возвращает много обращений за этим сообщением об ошибке, вы читали какие-либо из них для возможных исправлений?

2. @Jason Я уже потратил много часов на возможные решения Google, но это не работает.

3. @Jason Любая помощь, которую вы можете оказать, будет приветствоваться.

4. Попробуйте обновить VS до последней версии, чтобы узнать, сохраняется ли проблема, пожалуйста, обратитесь к этой проблеме : github.com/xamarin/xamarin-macios/issues/.

Ответ №1:

Установите безопасность транспорта приложений в своем списке.plist;

 <key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
 

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

1. Это не сработало, я добавил эту конфигурацию в info.plist, но она продолжает подводить меня.