2015-08-24 9 views
7

responsabilitàAndroid API 23 - HttpClient 4.X riconfezionato

  • So che non dovremmo usare HttpClient su Android più
  • In API 23 dobbiamo possibilità di utilizzare useLibrary 'org.apache.http.legacy'

I' Mi piacerebbe continuare ad usare HttpClient (anche io mantengo librerie e progetti basati su di esso) tuttavia, con API 23 le classi sono sparite.

Beh, non andato con useLibrary soluzione, ma non può essere utilizzato per sviluppare ulteriormente (classi non completamento automatico, tutto è mostrato codice come non valido)

Abbiamo anche possibilità di utilizzare HttpComponents disponibile Fork Android di HttpClient 4.3.5.1, che tuttavia non fornisce classi/intestazioni/interfacce fornite da Android sull'API < 22, quindi viene compilato, ma non siamo ancora in grado di svilupparlo in modo efficace.

Esiste un completo riconfezionamento della libreria HttpClient (versioni favorevolmente omogenee superiori a 4.3) che può essere ulteriormente utilizzato con target/compile-Sdk della versione 23?

Ultime repackage pieno ho potuto trovare è https://code.google.com/p/httpclientandroidlib/ che utilizza la versione 4.3.2

commento Ho anche aggiunto di HC problema JIRA https://issues.apache.org/jira/browse/HTTPCLIENT-1632

Questa soluzione sarà probabilmente necessaria solo fino HttpClient 5.X sarà essere rilasciato, in quanto dovrebbe avere nomi di pacchetti completamente diversi.

risposta

4

Bene, per rispondere alla mia domanda, ho messo su progetto, che riconfezionerà e costruirà HttpClient in bundle con pacchetti HttpMime, HttpCore e HttpClient-Cache in diversi namespace.

Attualmente la versione fornita è 4.3.3 (in sincronia con ASF HC 4.3.3 versione)

https://github.com/smarek/httpclient-android

E 'abbastanza personalizzabile, in modo da cambiare il nome del pacchetto/artefatto o la versione, la regolazione della costruire per i tuoi bisogni e così via non dovrebbe essere un problema.

E 'anche pubblicato Maven centrale sotto identificativo cz.msebera.android:httpclient:4.3.3 e tutti i tuoi importazioni di codice che attualmente utilizzano org.apache.http dovrebbe essere migrato (per l'amor di usare questa libreria) per cz.msebera.android.httpclient