After adding following changes in by build.gradle right after updating to latest android API level 23 (Marshmallow) all org.apache.http classes is not working.
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.myapp.package"
minSdkVersion 15
targetSdkVersion 23
versionCode 2
versionName "1.1"
}
}
I checked "Android API Differences Report" here. Its says all Classes of org.apache.http has been removed. Can someone suggest what is the alternative ?
Here is my code :
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();
}
Please refer this. Alternative
class
is mentioned in Android Developer site.See the Behavior Changes at Android Developers where it says that:
You can manually add an up-to-date version of the Apache HttpClient:
implementation 'org.apache.httpcomponents:httpclient:4.5.5'
Likewise, you can use another HTTP library altogether like OkHttp. You can also use a library which is more higher level, like Retrofit.