2013-10-14 72 views
1

使用和選擇方式使Android上的HTTP(S)請求是一個長期的痛苦。Gradle重命名maven依賴包(HttpComponents,Android)

雖然Google希望我們使用HttpURLConnection,但有些人更喜歡使用HttpClient。

有這個庫,https://code.google.com/p/httpclientandroidlib/與包裝腳本。

我寧願使用更多與Android構建環境集成的東西。

是否有可能使用Gradle以httpclientandroidlib的相同方式重新包裝Maven依賴項(整棵樹,包括httpclient,httpcomponents,httpmime,...)?

最好的方案是以相同的透明方式進行gradle下載,重新打包和鏈接這些庫。

gradle這個:

dependencies { 
    compile 'org.apache.httpcomponents:httpclient:4.2.3' 
    compile 'org.apache.httpcomponents:httpmime:4.2.3' 
} 
+0

爲什麼你需要重新包裝?目標是什麼? –

+0

@PeterNiederwieser在Android環境中不會與引導類路徑發生衝突。這就是爲什麼創建https://code.google.com/p/httpclientandroidlib/的原因。 –

回答

1

從org.apache.http簡單分裝到一些其他的命名空間具有使HttpClient的與對股票的API編寫的第三方庫不兼容的缺點。有計劃專門爲Android創建一個HttpClient 4.3的重新版本,完全兼容4.0 BETA1 API,並且大部分4.3版本的特性都被移植到它。真正令人遺憾的是,減輕Android的HttpClient fork問題的方式似乎是通過創建另一個fork來實現的。謝謝Google。

最新資訊
阿帕奇HttpComponents HttpClient庫的創建自旋只有Android的,這可以在這裏找到:https://hc.apache.org/httpcomponents-client-4.3.x/android-port.html

+0

是的,我明白這個後果。那麼這意味着,我應該等待,還是可以在任何地方分發? –

+0

我明白我的回答並不是很有幫助。有計劃,但沒有確定性。目前還不清楚可能需要等待多久。據我所知,Gradle不支持你想要的那種重新包裝。因此,編寫(或查找)自定義插件是您現在唯一的選擇 – oleg

+0

Shame Shame Google,它顯示了$$ H#l3 $也被僱用於Google :-) –