Я действительно застрял на этом. Я обновил свой проект Xamarin Forms до .NET Standard с PCL, и этот код ниже больше не работает на Android. У меня есть настройки Android для реализации HttpClient Android и реализации SSL / TLS в Native TLS 1.2+. В частности, когда я отлаживаю и пытаюсь перешагнуть через строку с httpClient.GetStringAsync… он взрывается, если Frame не находится в модуле (текущий кадр стека не найден в загруженном модуле. Исходный код для этого расположения не отображается) , И он возвращается обратно к абоненту. Попытка / ловить не ловит и ошибки. Я могу пройти этот код нормально в UWP / iOS. Я застрял на этом некоторое время сейчас. Любые идеи очень приветствуются. Я попытался обернуть httpclient с помощью оператора using и получить те же результаты. Все мои пакеты NuGet обновлены. Я работаю на реальном устройстве под управлением Android версии 8.1.0, а не на эмуляторе, на реальном сервисе, а не на localhost.
Вот мой код:
:
private async Task<List<string>> GetVideoIdsFromPlaylistAsync()
{
var httpClient = new HttpClient();
var videoIds = new List<string>();
try
{
var json = await httpClient.GetStringAsync(apiUrlForPlaylist).ConfigureAwait(false);
JObject response = JsonConvert.DeserializeObject<dynamic>(json);
var items = response.Value<JArray>("items");
foreach (var item in items)
{
videoIds.Add(item.Value<JObject>("contentDetails")?.Value<string>("videoId"));
};
YoutubeItems = await GetVideosDetailsAsync(videoIds);
}
catch (Exception ex)
{
Console.WriteLine(@" Error {0}", ex.Message);
Console.WriteLine(@" Error {0}", ex.InnerException?.Message);
}
return videoIds;
}