Xamarin需要引用Windows.Foundation.FoundationContract。

4

我使用Visual Studio 2015 Update 2和Xamarin创建了一个新的iPhone应用程序 (iOS 9.3)。我的Mac上有Xamarin beta通道 (包括Xcode等工具)。

以下是我的代码:

using Windows.Web.Http;
...
private async void GetPois()
{
    var client = new HttpClient();
    var response = await client.GetAsync(new Uri("http://onlinesource/json"));
}

GetAsync上出现错误,我没有安装httpclient nuget,因为它引发了一个错误。

add ref to assembly Windows.Foundation.FoundationContract

已经安装了ModernHttpClient nuget,但没有使用它。 @Andrii Krupka是的,我也有using System; 我添加了System.Net.Http而不是Windows,但现在我有类型或命名空间找不到。 我添加了对system.net和system.net.http的引用,现在它可以工作了。 接下来要解决的问题是禁用ats。 感谢@SushiHangover以及大家的帮助,我将把这个问题标记为已回答!


你的命名空间中有 using System; 这一行吗? - Andrii Krupka
当您尝试安装httpclient时,出现了什么错误? - Giorgi
1个回答

5
请使用命名空间System.Net.Http代替Windows....。这样,假设您已禁用ATS(因为它是非安全的HTTP链接... ;-)),则您的HttpClient将在iOS下正常工作。
var client = new HttpClient();
var response = await client.GetAsync(new Uri("http://onlinesource/json"));

个人观点:我非常喜欢 ModernHttpClient @

https://github.com/paulcbetts/modernhttpclient

(跨平台、PCL、更简洁、更快速,并且可以在一次请求中完成多项任务等等...)


是的,必须手动添加一些XML来禁用ATS。这只是一个内部测试应用程序,因此不适用于商店。我现在使用ModernHttpClient。谢谢您的帮助和建议。 - JP Hellemons
1
@JPHellemons 没问题,愉快的“Xammie”编码;-) - SushiHangover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接