2016-03-27 12 views
6

Sono venuto da te per un problema comune, ma sfortunatamente non sono riuscito a trovare una soluzione.HttpClient non disponibile Progetto Libreria condivisa Xamarin

Faccio un'applicazione xamarin.form, non è un PCL, ma un progetto di libreria condivisa. Mi piacerebbe utilizzare una API REST, e per questo, ho bisogno di utilizzare un'istanza HttpClient. Bene, ecco il problema. Con un PCL, devo solo aggiungere il pacchetto nuget Librerie client Microsoft HTTP e quindi posso usare la classe HttpClient.

Con un progetto Libreria condivisa, non è possibile aggiungere questo pacchetto nuget al progetto principale (che ritengo sia normale). Quindi aggiungo a .Droid one e .iOS (oh, a proposito, sto usando un mac e Xamarin Studio, se può aiutare). Quando aggiungo il pacchetto Nuget, posso aggiungere questa riga: using System.Net.Http; ma la classe HttpClient non è ancora disponibile. Ciò che intendo per non disponibile è, non riesco a utilizzare questa classe (il tipo o lo spazio dei nomi non è stato trovato, manca un riferimento all'assembly?)

C'è un modo per utilizzare la classe HttpClient in un progetto condiviso, e non un PCL? Se sì, come?

risposta

17

Deve essersi verificato un errore durante l'installazione delle librerie client Microsoft HTTP nei progetti Android e iOS, poiché questi tipi di progetto non sono supportati.

Impossibile installare il pacchetto "Microsoft.Bcl.Build 1.0.14". Stai cercando di installare questo pacchetto in un progetto che ha come target "MonoAndroid, Version = v6.0", ma il pacchetto non contiene riferimenti all'assembly o file di contenuti compatibili con tale framework. Per ulteriori informazioni, contattare l'autore del pacchetto.

La HttpClient viene fornito con la libreria di classi di base Xamarin https://developer.xamarin.com/api/namespace/System.Net.Http/.

Quindi non è necessario il HTTP biblioteche Client Microsoft e solo a

  • riferimento il vostro progetto condiviso nel progetto Android/iOS
  • aggiungere la Biblioteca System.Net.Http al progetto Android/iOS
  • aggiungi using System.Net.Http.

Su Xamarin Studio: Modifica Riferimenti> Pacchetti> Controlla System.Net.Http

su Visual Studio: Aggiungi riferimento> Gruppi> Quadro> Controlla System.Net.Http

Protip: Inoltre, si potrebbe avere uno sguardo a Paul Betts 'ModernHttpClient: https://github.com/paulcbetts/ModernHttpClient e Kerry Lothrops post sul blog HttpClientHandlers http://kerry.lothrop.de/httpclient-flavors/

+0

Grazie mille! Questo ha reso il trucco !! Grazie anche per il collegamento ModenHttpClient. – QuentinRM

+0

Se una risposta risolve il tuo problema, contrassegnalo come risposta, altrimenti rimarrà nella corsia di domanda senza risposta. Grazie. –

Problemi correlati