Xamarin形式:IOS即席崩溃,但调试有效

时间:2018-07-25 09:35:58

标签: c# json xamarin xamarin.forms response

我有一个非常奇怪的问题,我编写了一个可触发Web服务并给我回复的应用程序。这也适用于Android和IOS(在调试模式下),但是当我通过即席安装该应用程序时仍然可以使用,但是当我按下触发Web服务的按钮时,该应用程序将冻结,您必须重新启动它,但它总是在同一位置停止。

我发现有很多评论,并指出该错误发生在标记的位置。在调试模式下,一切正常进行。

这是将要执行的代码。

IsMYSite(strLink);

if (gotResponse)
{
    gotResponse = false;
    DetailPage.MYPages.Add(new MYPage { Title = portal, Link = strLink, Username = "", Password = "", IsVisible = false, CompanyImage = ImageLink });
    App.Current.Properties["MYPages"] = JsonConvert.SerializeObject(DetailPage.MYPages);

    App.Current.Properties["LastPortal"] = strLink;

    Navigation.PopAsync(true);

    LinkURL.TextColor = Color.Black;
}
else
{
    LinkURL.TextColor = Color.Red;
}

public async void IsMYSite(String url)
{
    try
    {
        String linkonly = url;
        url += "/api/" + CultureInfo.CurrentUICulture.ThreeLetterWindowsLanguageName;
        string strpost = "";
        StringContent str = new StringContent(strpost, Encoding.UTF8, "application/x-www-form-urlencoded");
        var client = new System.Net.Http.HttpClient();
        client.Timeout = new TimeSpan(0, 0, 6);
        client.BaseAddress = new Uri(url);

        var response = await client.GetAsync(new Uri(url));


        Dictionary<string, string> result = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content.ReadAsStringAsync().Result);

        portal = result["PortalTitle"];

        if (result["LoginLogo_Path"].StartsWith("~"))
        {
            StringBuilder str2 = new StringBuilder(result["LoginLogo_Path"]);
            str2.Remove(0, 1);
            ImageLink = linkonly + str2.ToString();
            gotResponse = true;
        }
    }
    catch
    {

    }
}

0 个答案:

没有答案