2013-10-14 71 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 :-) –