2016-03-27 104 views
6

我來找你一個共同的問題,但不幸的是,我無法找到解決方案。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?如果是,如何?

回答

17

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

所以你不需要微軟HTTP客戶端庫,並只需要

  • 參考共享項目在你的Android/iOS的項目
  • 圖書館System.Net.Http添加到您的Android/iOS的項目
  • 添加using System.Net.Http

在Xamarin工作室:編輯參考>軟件包>檢查System.Net.Http

在Visual Studio中:添加引用>組件>框架>檢查System.Net.Http

普羅蒂普:此外,你可以看看Paul Betts的ModernHttpClient:https://github.com/paulcbetts/ModernHttpClient和Kerry Lothrops的博客文章有關HttpClientHandlers http://kerry.lothrop.de/httpclient-flavors/

+0

非常感謝!這使得竅門!感謝您的ModenHttpClient鏈接。 – QuentinRM

+0

如果答案解決了您的問題,請將其標記爲已回答,否則它將保留在未答覆的問題通道中。謝謝。 –