Android API 23 - HttpClient 4.X 重新打包
Posted
技术标签:
【中文标题】Android API 23 - HttpClient 4.X 重新打包【英文标题】:Android API 23 - HttpClient 4.X repackaged 【发布时间】:2015-08-24 09:31:05 【问题描述】:免责声明
我知道我们不应该再在 android 上使用 HttpClient 在 API 23 中,我们可以选择使用useLibrary 'org.apache.http.legacy'
我想继续使用 HttpClient(我也维护基于它的库和项目),但是 API 23 中的类已经消失。
useLibrary
解决方法没有用,但不能用于进一步开发(类不会自动完成,所有内容都显示为无效代码)
我们还可以选择使用 HttpComponents 提供的 Android fork of HttpClient 4.3.5.1,但是它不提供 Android 在 API
是否有任何完整的 HttpClient 库重新打包(最好是高于 4.3 的版本),可以进一步与版本 23 的 target/compile-Sdk 一起使用?
我能找到的最新完整重新包装是 https://code.google.com/p/httpclientandroidlib/,它使用版本 4.3.2
我还对 HC JIRA 问题https://issues.apache.org/jira/browse/HTTPCLIENT-1632添加了评论
这种解决方法可能仅在 HttpClient 5.X 发布之前才需要,因为它应该具有完全不同的包名称。
【问题讨论】:
【参考方案1】:好吧,为了回答我自己的问题,我提出了一个项目,它将与 HttpMime、HttpCore 和 HttpClient-Cache 包一起重新打包和构建 HttpClient 到不同的命名空间中。
目前提供的版本是4.3.3(与ASF HC 4.3.3版本同步)
https://github.com/smarek/httpclient-android
它是完全可定制的,因此更改包/工件名称或版本,根据您的需要调整构建等等应该没有问题。
它还在 Maven Central 上以标识符 cz.msebera.android:httpclient:4.3.3
发布,并且您当前使用 org.apache.http
的所有代码导入都应该迁移(为了使用这个库)到 cz.msebera.android.httpclient
【讨论】:
以上是关于Android API 23 - HttpClient 4.X 重新打包的主要内容,如果未能解决你的问题,请参考以下文章
Android drawable 对于 API <23 和 API 23 及更高版本显示为拉伸
AndroidHttpClient 和 HttpGet API 在 Android 6.0 Marshmallow (API 23) 中已弃用
Android API 23 - HttpClient 4.X 重新打包
如何以编程方式在 Android 的 API 23 及更高版本中获取位置(纬度、经度)?
onActivityResult 未在 Android API 23 的片段上调用
FusedLocationApi.getLastLocation 总是返回 null(android 6.0,api 23)