jos*_*ick 45 android httpurlconnection apache-httpclient-4.x
随着Android 5.1的发布,看起来所有Apache http的东西都被弃用了.看文档是没用的; 他们都说
This class was deprecated in API level 22.
Please use openConnection() instead. Please visit this webpage for further details.
这是第一次阅读它时没关系,但是当每个被弃用的类都说明了这一点时,它没那么有用.
总之,什么是类的替代喜欢HttpEntity,特别是StringEntity和MultipartEntity?我替换BasicNameValuePair了我自己的Android Pair<T, S>类实现,它看起来URLEncoder.encode是一个很好的替代品URLEncodedUtils,但我不知道该怎么做HttpEntity.
编辑
我决定重新编写网络内容.要尝试使用Retrofit和OkHttp
编辑
认真看看将你的通话和东西转换为Retrofit.很漂亮.我很高兴我做到了.有一些障碍,但它很酷.
C0D*_*OU5 21
您始终可以导入最后一个Apache Http客户端并使用它.此外,您可能需要查看一个像Volley或Retrofit这样的网络库,以防您可以使用它.如果启动新项目,建议使用网络库,因为不需要重新发明轮子.但如果你坚持使用HttpClient,那么请继续阅读.
编辑:关于Apache HttpClient的最新消息(截至2015年7月11日)
谷歌Android 1.0发布了Apache HttpClient的BETA前快照.为了配合第一个Android版本,Apache HttpClient 4.0 API必须过早冻结,而许多接口和内部结构仍未完全解决.随着Apache HttpClient 4.0的日趋成熟,该项目期待Google将最新的代码改进整合到他们的代码树中.不幸的是没有发生.Android附带的Apache HttpClient版本实际上已成为一个分支.最终谷歌决定停止进一步开发他们的分支,同时拒绝升级到Apache HttpClient的股票版本,理由是兼容性问题是这种决定的原因.因此,那些希望在Android上继续使用Apache HttpClient API的Android开发人员无法利用更新的功能,性能改进和错误修复.用于Android的Apache HttpClient 4.3端口旨在通过提供与Google Android兼容的官方版本来解决这种情况.鉴于从Android API 23开始,谷歌的HttpClient分支已被删除,该项目已经停止.
但是,有一个Apache HttpClient v4.3的官方Android端口
Android API 22及更早版本应使用Apache HttpClient v4.3
dependencies {
         compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 
}
Android API 23及更新版本应使用由Marek Sebera维护的适用于Android的Apache HttpClient软件包
dependencies {
     compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1' 
}
来自Apache.org的信息
fat*_*ddy 12
该HttpClient的文档指出你在正确的方向:
org.apache.http.client.HttpClient:
此接口在API级别22中已弃用.请改用openConnection().请访问此网页了解更多详情.
意味着你应该切换到java.net.URL.openConnection().
这是你如何做到的:
java.net.URL url = new java.net.URL("http://some-server");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
// read the response
System.out.println("Response Code: " + conn.getResponseCode());
InputStream in = new BufferedInputStream(conn.getInputStream());
String response = org.apache.commons.io.IOUtils.toString(in, "UTF-8");
System.out.println(response);
| 归档时间: | 
 | 
| 查看次数: | 47153 次 | 
| 最近记录: |