【问题标题】:can't use HttpPost in Android Studio after successful Gradle syncGradle 同步成功后无法在 Android Studio 中使用 HttpPost
【发布时间】:2016-08-15 07:09:13
【问题描述】:

我正在尝试像过去在 Android 中那样使用 HttpPost。我意识到它已从最近的 Android 版本中删除。按照类似 StackOverflow 问题的解决方案,我将其添加到我的 Gradle 依赖项中:

compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'

在抱怨没有错误的 Gradle 同步之后,我仍然无法导入 HttpPost 程序。其实org.apache.http.client.methods这个包根本解析不出来。

我还尝试了 Apache HttpClient 网站的建议,即在我的 Gradle 依赖项中使用它:

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

再一次,同步正常,这一次包解决了,但不是 HttpPost 程序。

如有任何建议,我将不胜感激。

【问题讨论】:

标签: android gradle http-post


【解决方案1】:

只需在您的build.gradle android 插件中添加这一行:

useLibrary 'org.apache.http.legacy'

【讨论】:

  • 但是这些是旧版本的 Apache 客户端,是吗?更新版本不是更好吗?有没有办法做到这一点?
  • 上面的答案很完整,描述了整个问题,在 API 23 中,这个客户端被完全删除,变成了一个遗留问题。我认为最好使用 HttpOk、Retrofit 或简单的 UrlConnection。
【解决方案2】:

适用于 Android 的 Apache HttpClient 4.3 是对早期 Android 版本中包含的旧 4.0 alpha 版本的更新。为了避免命名冲突,一些更新的类得到了后缀HC4,例如HttpPostHC4,必须使用它来代替。

但现在旧的 HttpClient 已从 Android 中删除,像 HttpPost 这样的旧类不再存在。

在较新的 Android 版本上获取 HttpClient 库的官方方法是使用:

android {
    useLibrary 'org.apache.http.legacy'
}

作为documented here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多