HttpClient不可用共享库项目Xamarin

Que*_*nRM 7 rest httpclient xamarin

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

我创建了一个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?如果有,怎么样?

Sve*_*übe 20

将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/