我正在为多个平台做一个项目,我已经遵循最佳实践并创建了一个核心项目,以包含所有平台上相同的所有代码。 为了进行网络通信,我想使用HttpClient,它似乎是推荐的与Web服务进行通信的方法。
我不是在做一个PCL,而只是一个包含核心项目的标准C#库。但是,似乎没有HttpClient的常见实现,只有平台特定的实现。我无法在我的核心中引用和使用它,但仅限于我的Android和iOS项目。
我非常希望在我的核心项目中拥有所有网络代码,而且我认为有两种选择 - 我都不喜欢。
推荐的方法是什么,为什么Xamarin没有将HttpClient作为公共库提供?
希望有人可以提供帮助, 感谢
答案 0 :(得分:7)
我建议查看ModernHttpClient https://github.com/paulcbetts/modernhttpclient
它是适用于iOS和Android的跨平台网络库。来自项目:
该库带来了最新的特定于平台的网络库 通过自定义HttpClient处理程序到Xamarin应用程序。写你的 使用System.Net.Http的应用程序,但删除此库,它将会去 急剧加快。
答案 1 :(得分:2)
您应该可以在核心库中使用System.Net.Http
,我最近已经完成了。
确保您的核心库是.Net 4.5项目。项目选项中有一个用于选择.Net版本的设置。检查完毕后,您只需要参考System.Net.Http.dll
。
如果这不能解决您的问题,您使用的是Windows还是Mac(Xamarin Studio)?
答案 2 :(得分:1)
由于许可限制,我担心目前无法在Mono上使用HttpClient。如果您愿意,可以投票UserVoice suggestion。