【问题标题】:Create a HttpClient in Xamarin Forms in iOS在 iOS 的 Xamarin 表单中创建 HttpClient
【发布时间】:2020-01-27 13:44:59
【问题描述】:

我有一个正在运行的 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# ios xamarin.forms httpclient


    【解决方案1】:

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

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

    【讨论】:

    • 嗨@darko。感谢您的关注。我的 info.plist 中没有任何名称为 NSAppTransportSecurity 的密钥
    • 添加密钥然后试一试。
    • 我这样做了,但什么也没发生 :-(
    • 你的 url 变量的值是多少?您的 GetUrl.GenerateURL("GetSetting") 是否获取 url?你试过调试吗?
    • 天啊。今天我打开电脑,没有任何改变就可以工作了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多