このコードで何が問題になっているのか、あるいはどのようにXamarinの設定を変更してコードを正常に実行できるか教えてください。 Xam.Plugin.Connectivity.CrossConnectivity
は:「デバイスはインターネットに接続されていますが、実現していればDownloadCountriesListAsync()
がスタックしています(UWPは動作しません。アンドロイドは選択したインターネットパラメータをマニフェストでも使用しています)。このコードは、C#console appで動作しています。Xamarin.Forms with Net.Http
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace radacodeTestApp
{
public class ListsDownloader
{
public List<Country> Countries { get; private set; }
public ListsDownloader()
{
Countries = new List<Country>();
var task = DownloadCountriesListAsync();
}
public async Task<bool> DownloadCountriesListAsync()
{
try
{
var vkjsonResponse = await GetResponse(@"https://api.vk.com/api.php?oauth=1&method=database.getCountries&need_all=1&v=5.60");
var jsonObject = JObject.Parse(vkjsonResponse);
foreach (var jO in jsonObject["response"]["items"])
Countries.Add(JsonConvert.DeserializeObject<Country>(jO.ToString()));
}
catch (OperationCanceledException)
{
return false;
}
return true;
}
public async Task<string> GetResponse(string url)
{
using (var httpClient = new HttpClient())
return await httpClient.GetStringAsync(url);
}
}
public class Country
{
public int Cid { get; set; }
public string Title { get; set; }
public override string ToString()
{
return Title;
}
}
}
あなたはそうではありません、それが終了するのを待って、することはできません。コンストラクタでそれをしないでください。 – SLaks
私はコンストラクタの仕上げを待っていません。もっと近くを参照してください –
正確に;それは問題です – SLaks