WiFiClient provides a raw connection to the internet through a WiFi access point (such as your home router).
HttpClient provides a connection to a web server via an existing Client connection, such as a WiFiClient connection.
So the simplest answer to your question
to send HTTP commands to a server (XML/JSON), which one to go for?
is "Use both".
You use WiFiClient to connect to the internet, then you use HttpClient on your WiFiClient connection to communicate with a website. As it states in the readme on HttpClient's github repository:
Because it expects an object of type Client, you can use it with any of the networking classes that derive from that. Which means it will work with EthernetClient, WiFiClient and GSMClient.
To understand the concept more fully you will first need to understand the OSI 7-Layer Model which is essential reading for anyone doing anything with networking software.