Essentially there are two ways you can make requests, and which one you use is up to you.
The Curl adapter is an adapter that can be used with
The Curl client is a client on its own, and doesn't need an adapter. It's used for scenarios where a different class (that uses composition) expects a
Using ClientInterface seems cleaner, because you can easily switch out the implementation with a different type, and I think Magento makes more use of it.
The Zend Client seems more legacy, but I'm actually using that for a project; it's got more options. i.e. the Curl client only has
post options available (of course you can overwrite it with the
CURLOPT* options, but it's less clean).
I would try to use the Curl client (indirectly), because it implements
ClientInterface; it seems to be where Magento is moving to. The Magento_Payment module uses it extensively as well as Magento_Braintree.
Magento_Braintree seems to have been built to serve as an example for other developers that are building payment gateway integrations (as well as providing Braintree functionality of course).
It's also possible the ClientInterface is more user-friendly when it's used with Virtual Types and DI.
If using a ClientInterface implementation doesn't work out, you can always switch to
\Zend_Http_Client with an adapter of your choosing.
I hope this wasn't too vague and provided some info!