Android Http Clients

In Android, we can choose 3(2) choices.

  • HttpURLConnection
  • Apache HttpClient
  • AndroidHttpClient

In old version, HttpClient is not bundled I thought.
But, it is not latest version.

Permission

To use HttpClient(internet connection), we need to enable a permission.

<uses-permission android:name="android.permission.INTERNET" />

HttpURLConnection

It seems to be steadily. Easy to use for general-purpose.
Compare to Apache HttpClient, customize is difficult, but stable.

Sample

InputStream is = null;
try
{
     URL url  new URL("http://www.google.com");
     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     conn.setRequestMethod("GET");
     conn.connect();
     int response = conn.getResponseCode();
     if ( response == 200 )
     {
        is = conn.getInputStream();
     }
}
finally
{
    if ( is != null )
    {
          is.close();
    }
}

Apache HttpClient

Few bugs but, can customize. Also can use variety purpose.
DefaultHttpClient is common use in Java.

HttpClient httpClient = new DefaultHttpClient();
try
{
        HttpResponse httpResponse;
        HttpGet request = new HttpGet("http://www.google.com");
        HttpResponse res = httpClient.execute(hget);
        // httpResponse.getEntity()
}
catch (IOException oops) 
{
	oops.printStackTrace();
	// Fail
} 
finally 
{
	httpClient.getConnectionManager().shutdown();
}

AndroidHttpClient

AndroidHttpClient is extend of DefaultHttpClient.
It is set appropriate paramesters for Android.
Actually, it is the best choice for easy use.

Sample

AndroidHttpClient httpClient = AndroidHttpClient.newInstance("Android");
try {
	HttpGet hget= new HttpGet("http://www.google.com");
	HttpResponse res = httpClient.execute(hget);
    	if (res.getStatusLine().getStatusCode() == 200) 
	{
		//IOUtils.copy(res.getEntity().getContent(), new FileOutputStream(new File(path)));
                //res.getEntity().getContent();  This is content
	}
} 
catch (IOException oops) 
{
	oops.printStackTrace();
	// Fail
} 
finally 
{
	httpClient.getConnectionManager().shutdown();
}

References
Google Developer”
Android Developer’s Blog
TechBooster