我找到了一个常见的问题,但不幸的是,我无法找到解决方案。
我创建了一个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?如果是,怎么样?
答案 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客户端库,只需要
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/