java – AndroidHttpClient and DefaultHttpClient-ThrowExceptions

Exception or error:

Is there much difference between those two and which one is preferably to use?

How to solve:

AndroidHttpClient: Subclass of the Apache DefaultHttpClient that is configured with reasonable default settings and registered schemes for Android, and also lets the user add HttpRequestInterceptor classes.
This client processes cookies but does not retain them by default. To retain cookies, simply add a cookie store to the HttpContext

[API]

###

Based on the Android source code:

https://github.com/CyanogenMod/android_frameworks_base/blob/gingerbread/core/java/android/net/http/AndroidHttpClient.java#L106

AndroidHttpClient is set to do the following extra settings:

  1. Turn off stale checking, since the connections can break all the time.
  2. Set ConnectionTimeout and SoTimeout (20 or 60 seconds)
  3. Turn off redirecting.
  4. Use a session cache for SSL sockets.
  5. Use gzip compressed traffic between client and server if it’s possible.
  6. Doesn’t retain cookies by default.

###

This interesting blog post from an android developer gives an overview of the different Android’s HTTP clients.

According to this post, URLConnection should be preferred over DefaultHttpClient or AndroidHttpClient on Gingerbread and above.

Leave a Reply

Your email address will not be published. Required fields are marked *