HttpClient 不可用共享库项目 Xamarin
Posted
技术标签:
【中文标题】HttpClient 不可用共享库项目 Xamarin【英文标题】:HttpClient not available Shared Library project Xamarin 【发布时间】:2016-03-27 21:44:15 【问题描述】:我来找您解决一个常见问题,但很遗憾,我无法找到解决方案。
我制作了一个 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】:将 Microsoft HTTP 客户端库安装到您的 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/
【讨论】:
非常感谢!那成功了!也感谢 ModenHttpClient 链接。 如果某个答案解决了您的问题,请将其标记为已回答,否则它将保留在未回答的问题通道中。谢谢。以上是关于HttpClient 不可用共享库项目 Xamarin的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Multiplatform Ktor 和 Coil 之间共享 HttpClient?
在类库项目的基类中定义 HttpClient 实例的最佳方法是啥?
HttpClient 和 WebClient 返回 503 服务器不可用或 403 禁止