execute
is a final method, and Mockito can't mock final methods (as mentioned in the section on spying and also the FAQ).
Why? Because you can't override final methods under normal circumstances, Java takes a shortcut and compiles calls (to final methods) directly to the implementations instead of looking them up in Java's equivalent of a virtual method table. This means that Mockito is never involved in final method calls, and therefore can't intercept behavior or even receive stubbing/verification calls.
Can you switch to mocking and using a raw HttpClient instead? You can mock any method of an interface without worrying about visibility or final method problems.