Xamarin需要引用Windows.Foundation.FoundationContract

时间:2016-04-19 11:04:41

标签: c# xamarin xamarin.ios dotnet-httpclient

我在Visual Studio 2015更新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的回答,谢谢大家!

1 个答案:

答案 0 :(得分:5)

使用名称空间System.Net.Http代替Windows....

然后你的HttpClient在iOS下运行正常,假设你已经禁用ATS,因为这是一个非安全的HTTP链接......; - )

var client = new HttpClient();
var response = await client.GetAsync(new Uri("http://onlinesource/json"));

个人说明:我非常喜欢ModernHttpClient @

https://github.com/paulcbetts/modernhttpclient

(跨平台,PCL,更清洁,更快,能够在单个请求中跨越建筑物等等)