在Xamarin核心项目中使用HttpClient

时间:2013-11-05 08:31:08

标签: xamarin dotnet-httpclient

我正在为多个平台做一个项目,我已经遵循最佳实践并创建了一个核心项目,以包含所有平台上相同的所有代码。 为了进行网络通信,我想使用HttpClient,它似乎是推荐的与Web服务进行通信的方法。

我不是在做一个PCL,而只是一个包含核心项目的标准C#库。但是,似乎没有HttpClient的常见实现,只有平台特定的实现。我无法在我的核心中引用和使用它,但仅限于我的Android和iOS项目。

我非常希望在我的核心项目中拥有所有网络代码,而且我认为有两种选择 - 我都不喜欢。

  1. 创建一个可以在核心项目中使用的通用界面,该项目在Android和iOS上作为包装器实现。
  2. 使用核心项目支持的其他技术 - 我在想webclient等。
  3. 推荐的方法是什么,为什么Xamarin没有将HttpClient作为公共库提供?

    希望有人可以提供帮助, 感谢

3 个答案:

答案 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