'org.apache.http.HttpEntity' 已被弃用。如何在安卓工作室中解决此错误?

2022-09-03 17:17:17

我正在使用Android Studio API22,我有这些错误:

'org.apache.http.HttpEntity' is deprecated
'org.apache.http.HttpResponse' is deprecated
'org.apache.http.NameValuePair' is deprecated
'org.apache.http.client.HttpClient' is deprecated
'org.apache.http.client.entity.UrlEncodedFormEntity' is deprecated
'org.apache.http.client.methods.HttpPost' is deprecated
'org.apache.http.impl.client.DefaultHttpClient' is deprecated
'org.apache.http.message.BasicNameValuePair' is deprecated
'org.apache.http.params.BasicHttpParams' is deprecated
'org.apache.http.params.HttpConnectionParams' is deprecated
'org.apache.http.params.HttpParams' is deprecated
'org.apache.http.util.EntityUtils' is deprecated

我该如何解决这个问题?


答案 1

将其添加到您的等级中

useLibrary 'org.apache.http.legacy'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 2
    versionName "1.0.1"
}
buildTypes {
    release {
        debuggable false
        signingConfig signingConfigs.releaseConfig
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debugSigned {
        debuggable true
        signingConfig signingConfigs.releaseConfig
    }
    debug {
        debuggable true
    }
}
useLibrary 'org.apache.http.legacy'
}

答案 2

引用我自己的话:

如果您需要继续使用HttpClient API,请考虑切换到OkHttp及其HttpClient兼容层,或者考虑切换到Apache的单独Android版本的HttpClient。否则,请切换到 HttpURLConnection 或 OkHttp 的本机 API。

或者,根据您使用HttpClient的目的,使用更具体的网络库(针对Web服务的改造,Picasso或用于图像的通用图像加载器等)。

另请注意,HttpClient 已从 M Developer Preview 的 SDK 中删除,表明它将在下一版 Android 中删除。虽然有一种解决方法可以在M中继续使用HttpClient,但您确实需要转移到其他方法。


推荐