首页 > 解决方案 > 在 iOS 的 Xamarin 表单中创建 HttpClient

问题描述

我有一个正在运行的 ASP.Net Core API。

我有一个 Xamarin Forms 解决方案,在主项目中,我有这个类:

public class GetSettings
{

    public static async Task<SettingResponse> GetSetting()
    {
        SettingResponse setting = new SettingResponse();

        var url = new Uri(string.Format(GetUrl.GenerateURL("GetSetting"), string.Empty));

        var client = new HttpClient();

        var response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            var result = response.Content.ReadAsStringAsync().Result;

            setting = JsonConvert.DeserializeObject<SettingResponse>(result);
        }
        else
        {
            setting = null;
        }

        return setting;
    }
}

在 Android 和 iOS 项目中,我有这两行:

SettingResponse setting = new SettingResponse();

setting = await GetSettings.GetSetting();

在 Android 项目中没有问题并且工作正常,但在 iOS 项目中,当new HttpClient();一无所获时,应用程序什么也不做。

标签: c#iosxamarin.formshttpclient

解决方案


检查您的 info.plist 文件中的 NSAppTransportSecurity 字典中的 NSAllowsArbitraryLoads 键是否为 YES。

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

在此处输入图像描述


推荐阅读