HttpEntity is deprecated on Android now, what's the alternative? HttpEntity is deprecated on Android now, what's the alternative? android android

HttpEntity is deprecated on Android now, what's the alternative?


You can always import the last Apache Http client and use that. Also, you might want to take a look at a networking library like Volley or Retrofit, just in case you can use that instead. If starting a new project, using a networking library is recommended because there is no need to reinvent the wheel. But if you are stuck with using HttpClient, then read on.

EDIT: Latest news on Apache HttpClient (as of 11/07/2015)

Google Android 1.0 was released with a pre-BETA snapshot of Apache HttpClient. To coincide with the first Android release Apache HttpClient 4.0 APIs had to be frozen prematurely, while many of interfaces and internal structures were still not fully worked out. As Apache HttpClient 4.0 was maturing the project was expecting Google to incorporate the latest code improvements into their code tree. Unfortunately it did not happen. Version of Apache HttpClient shipped with Android has effectively become a fork. Eventually Google decided to discontinue further development of their fork while refusing to upgrade to the stock version of Apache HttpClient citing compatibility concerns as a reason for such decision. As a result those Android developers who would like to continue using Apache HttpClient APIs on Android cannot take advantage of newer features, performance improvements and bug fixes. Apache HttpClient 4.3 port for Android was intended to remedy the situation by providing official releases compatible with Google Android. Given that as of Android API 23 Google's fork of HttpClient has been removed this project has been discontinued.

However, there is an official Android port of the Apache HttpClient v4.3

Android API 22 and older should use the Apache HttpClient v4.3

dependencies {         compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' }

Android API 23 and newer should use Apache HttpClient packages for Android maintained by Marek Sebera

dependencies {     compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1' }

Info taken from Apache.org


The HttpClient documentation points you in the right direction:

org.apache.http.client.HttpClient:

This interface was deprecated in API level 22. Please use openConnection() instead. Please visit this webpage for further details.

means that you should switch to java.net.URL.openConnection().

Here's how you could do it:

java.net.URL url = new java.net.URL("http://some-server");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("POST");// read the responseSystem.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);


Call webservice httpclient replace by httpurlconnection

my code here

public static String getDataFromUrl(String url) {        String result = null;//        System.out.println("URL comes in jsonparser class is:  " + url);        try {            URL myurl=new URL(url);            HttpURLConnection urlConnection = (HttpURLConnection) myurl                    .openConnection();            urlConnection.setRequestMethod("GET");            urlConnection.setDoInput(true);            urlConnection.connect();            InputStream is=urlConnection.getInputStream();            if (is != null) {                StringBuilder sb = new StringBuilder();                String line;                try {                    BufferedReader reader = new BufferedReader(                            new InputStreamReader(is));                    while ((line = reader.readLine()) != null) {                        sb.append(line);                    }                    reader.close();                } finally {                  is.close();                }                result = sb.toString();            }        }catch (Exception e){            result=null;        }        return result;    }