My order is:
1. LNet - if I can I always use this sockets (if I need TCP/IP it always win). Very fast and lightweight (good choice for mobile platform). Really cross platform (Windows, Windows mobile, Linux, MacOS, etc) Have no-blocking mode, but...
2. ... HTTPClient is very restricted, so I use Synapse socket (i have a total control on every part like headers, request body, response body, redirection, SSL etc). Have blocking mode so I mostly must use threads. Support only for windows and linux (and use winsock on linux?). On windows mobile (tested year ago) I had add some compiler defines manually.
3. If all else fails I use Indy - very heavy but have everything, and if something is not working on LNet/Synapse sockets, is always work on Indy