首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >org.apache.http.entity.FileEntity在Android6 (Marshmallow)中被废弃。

org.apache.http.entity.FileEntity在Android6 (Marshmallow)中被废弃。
EN

Stack Overflow用户
提问于 2015-10-05 13:15:54
回答 3查看 4.6K关注 0票数 9

我正在将一个应用程序升级到API 23,其中不推荐org.apache.http

我当前(不推荐的)代码如下所示:

代码语言:javascript
运行
复制
HttpClient httpClient = new DefaultHttpClient();
File file = new File(attr.Value);
String url = server_url;
HttpPost request = new HttpPost(url);
FileEntity fileEntity = new FileEntity(file, "image/png");
request.setEntity(fileEntity);
HttpResponse response = httpClient.execute(request);
String output = getContent(response.getEntity().getContent());

我已经找到了一些关于如何使用HttpURLConnection来完成这个任务的建议,但是它们都比当前的解决方案复杂得多(不能再使用了)。我正在讨论许多代码行,用于执行与上述功能相同的功能。

例如:此页此页

有人有一个好的固体物较短的解决方案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-05 14:31:13

如果您将compileSdkVersion更改为21,您的应用程序将编译得很干净。尽管如此,谷歌放弃内置HttpClient实现是有原因的,所以你可能应该选择其他的库。该“其他图书馆”可以是:

  • 内置的经典Java HttpUrlConnection,尽管如您所发现的,它的API留下了一些需要改进的地方。
  • Apache的安卓HttpClient独立打包
  • OkHttp (我的推荐)
  • AndroidAsync

特别是,OkHttp似乎为投递文件张贴多部分表单提供了一个很好的API,这应该与您的HttpClient代码类似。

票数 9
EN

Stack Overflow用户

发布于 2015-10-05 13:26:56

ApacheGoogle4.3的HttpClient端口旨在通过提供与Google兼容的官方版本来纠正这种情况。 鉴于截至Android 23,谷歌的HttpClient分支已经被删除,这个项目已经停止。 建议那些想继续在Android上使用Apache HttpClient的用户考虑

针对Android 22及更高版本的ApacheAndroid4.3端口

代码语言:javascript
运行
复制
dependencies {
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

针对Android 23及更高版本时由Marek Sebera维护的Apache HttpClient包

代码语言:javascript
运行
复制
dependencies {
    compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
}

摘自Apache官方网站Apache HttpClient for Android

注意:您不必使用useLibrary 'org.apache.http.legacy'语句,这是为没有从HttpClient提供的HttpClient类迁移的项目引入的。对于进一步的解释

票数 4
EN

Stack Overflow用户

发布于 2016-02-18 15:49:15

HTTPClient最好的替代方法是使用Volley。它更容易使用,处理请求队列和缓存您的请求。它完全兼容几乎所有的API级别,直到API 4。

关于如何做到这一点,请参阅Android文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32949626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档