HttpClient不可用共享库项目Xamarin

时间:2016-03-27 21:44:15

标签: rest xamarin httpclient

我找到了一个常见的问题,但不幸的是,我无法找到解决方案。

我创建了一个xamarin.form应用程序,它不是PCL,而是一个共享库项目。我想使用REST api,为此,我需要使用HttpClient实例。 嗯,这是问题所在。使用PCL,我只需要添加nuget包Microsoft HTTP Client Libraries,然后我可以使用HttpClient类。

使用共享库项目,我无法将此nuget包添加到主项目(我认为这是正常的)。所以我添加到.Droid一个,和.iOS一个(哦,顺便说一句,我使用的是mac,而Xamarin Studio,如果可以帮助的话)。 当我添加Nuget包时,我可以添加以下行:using System.Net.Http;但是HttpClient类仍然不可用。我的意思是不可用的是,我只是不能使用这个类(找不到类型或命名空间httpclient,你是否缺少程序集引用?)

有没有办法在共享项目中使用HttpClient类,而不是PCL?如果是,怎么样?

1 个答案:

答案 0 :(得分:20)

将Microsoft HTTP Client Libraries安装到Android和iOS项目时一定出错,因为不支持这些项目类型。

  

无法安装软件包' Microsoft.Bcl.Build 1.0.14'。您正在尝试将此软件包安装到以MonoAndroid,Version = v6.0'为目标的项目中,但该软件包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请与软件包作者联系。

HttpClient附带Xamarin基类库https://developer.xamarin.com/api/namespace/System.Net.Http/

因此,您不需要Microsoft HTTP客户端库,只需要

  • 在您的Android / iOS项目中引用您的共享项目
  • 将库System.Net.Http添加到您的Android / iOS项目
  • 添加using System.Net.Http

在Xamarin Studio上:编辑参考资料>套餐>检查System.Net.Http

在Visual Studio上:添加参考>组件>框架>检查System.Net.Http

Protip :此外,你可以看看Paul Betts' ModernHttpClient:https://github.com/paulcbetts/ModernHttpClient和Kerry Lothrops博客文章关于HttpClientHandlers http://kerry.lothrop.de/httpclient-flavors/