2016-03-27 3 views
6

Я прихожу к вам за общей проблемой, но, к сожалению, мне не удалось найти решение.HttpClient не доступен Проект общей библиотеки Xamarin

Я делаю приложение xamarin.form, это не PCL, а проект общей библиотеки. Я хотел бы использовать REST api, и для этого мне нужно использовать экземпляр HttpClient. Ну, вот в чем проблема. С PCL мне просто нужно добавить пакет nuget Microsoft HTTP Client Libraries, а затем я могу использовать класс HttpClient.

С проектом Shared Library я не могу добавить этот пакет 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 библиотека Microsoft Client и имеют только

  • эталонного ваш совместный проект в проекте Android/IOS
  • добавить библиотеку System.Net.Http в свой проект Android/IOS
  • добавьте using System.Net.Http.

На Xamarin студии: Изменить Ссылки> Пакеты> Проверить 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/

+0

Большое вам спасибо! Это сделало трюк! Спасибо за ссылку ModenHttpClient. – QuentinRM

+0

Если ответ решает вашу проблему, отметьте его как ответ, иначе он останется в неотвеченном вопросе. Благодарю. –

Смежные вопросы