Today almost every Android app uses HTTP/HTTPS requests as the main transport for transferring data. Even if you're not using HTTP directly, you may be using multiple SDKs that rely on HTTP for networking, such as analytics, crash reporting and ads.
So it's fair to say that HTTP is the ubiquitous, and perhaps even obvious, choice for data transfers. But choosing HTTP in Android should also include some consideration of the available libraries. Besides well known public APIs like HttpURLConnection or Apache Client, there are many great libraries to choose from. Why choose them? Because of the lengthy list of capabilities that alternative libraries may be better for, such as:
- ability to cancel network calls
- execute requests in parallel
- connection pooling to re-use existing socket connections
- local caching of responses
- simple async interface to avoid blocking in main or UI thread
- wrapping REST API calls
- retry policy and backoff
- efficiently load and transform images
- serializing through JSON
- support SPDY, HTTP/2.