Java 在API级别23中删除org.apache.http包。替代方案是什么?
在更新到最新的android API级别23(Marshmallow)之后,在by build.gradle中添加以下更改后,所有org.apache.http类都无法工作Java 在API级别23中删除org.apache.http包。替代方案是什么?,java,android,apache,api,http,Java,Android,Apache,Api,Http,在更新到最新的android API级别23(Marshmallow)之后,在by build.gradle中添加以下更改后,所有org.apache.http类都无法工作 android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.myapp.package" minSdkVersion 15 t
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.myapp.package"
minSdkVersion 15
targetSdkVersion 23
versionCode 2
versionName "1.1"
}
}
我查看了“Android API差异报告”。它说org.apache.http的所有类都被删除了。有人能建议一下替代方案吗
这是我的密码:
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(address);
httpPost.setEntity(new StringEntity("{\"longUrl\":\""+longUrl+"\"}"));
httpPost.setHeader("Content-Type", "application/json");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
请参阅Android开发者网站上的文章,其中写道:
Android 6.0版本取消了对Apache HTTP客户端的支持。如果你的应用程序
正在使用此客户端,目标是Android 2.3(API级别9)或更高版本,
改用HttpURLConnection类。这个API更有效
因为它通过透明压缩和
响应缓存,并将功耗降至最低。继续使用
对于ApacheHTTPAPI,必须首先声明以下内容
build.gradle文件中的编译时依赖项:
android {
useLibrary 'org.apache.http.legacy'
}
请参阅。站点中提到了备选类
在android 5.1中,org.apache.http类和android.http.AndroidHttpClient类已被弃用。这些类不再被维护,您应该尽快将使用这些API的任何应用程序代码迁移到URLConnection类
您可以手动添加Apache HttpClient的最新版本:
实现“org.apache.httpcomponents:httpclient:4.5.5”
同样,您也可以使用另一个HTTP库,如OkHttp。您还可以使用更高级别的库,如改型。HttpClient在Android L中已经被弃用,因此我建议使用HttpURLConnectionGradle似乎不识别“useLibrary”。下面的错误:找不到Gradle DSL方法:“useLibrary()”@techierishi:确保您使用的是Gradle for Android插件的1.3.0版。我已经添加了useLibrary,但在我的构建中仍然出现“找不到可选库:org.apache.http.legacy”错误?