Java 在API级别23中删除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 API级别23(Marshmallow)之后,在by build.gradle中添加以下更改后,所有org.apache.http类都无法工作

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”错误?