Jersey Vs Httpurlconnection For A Restful Android Client
Since Google officially deprecated the HTTPClient and related methods after Android API 22. I thought it would be interesting to compare their recommended alternative (HttpURLConnection) with my preferred RESTful client; Jersey.
The following example is an implementation of HttpURLConnection to query a RESTful Webservice to return a String.
The following is a small class implementation of the Jersey client framework, I decided to include the whole class for context.
Here is how you would query for a String result within an Android AsyncTask:
The biggest difference is the verbosity of HttpURLConnection. Here are a few other more obscure differences:
-
HttpURLConnection has a poorly designed API. It is very verbose, with a large library of methods and boilerplate required to achieve even the smallest transactional logic.
-
HttpURLConnection is very well documented. It is easy to find examples of whatever logic you are trying to implement.
-
Comparative performance is negligible. Especially when Jersey uses HttpUrlConnection as a fall-back API.
-
The Jersey client is Android-specific. It has been optimised specifically for RESTful requests. Whereas HttpUrlConnection is a general purpose, standalone API that can be used in any Java environment.
-
Jersey is merely a wrapper API. It has a number of fall-backs (HttpUrlConnection being one of them). Its biggest strength is its API design, for extremely light-weight implementation requirements.