Nothing is better than raw sockets
A while ago, I had a post titled "Webclient and HttpWebRequest - two "time-saving" classes can kill more time than they save". That is about Microsoft's platform (.Net). Apparently Android is no exception. Classes such as AndroidHttpClient, URLConnection together with HttpGet and HttpPost look so convenient hence appealing that it is very hard to resist. All these high level networking classes may do obscure things such as inserted undesirable headers, new lines in the body, and behave mysteriously. They are just like Webclient and HttpWebRequest of .Net. They may kill much more time than they save. If one wants to have good control of what to send and how to receive, socket classes are the best choice.