I would prefer the final class without public constructors. The way the sun did this with the Math class, so I guess the usual way to do this is in java.
But in your case, I would have avoided static. Static methods are good for free side-effect functions that don't have access to an external (or globally mutable) state. An HTTP request has access to an external state.
I would define an interface with these methods, write one implementation that executes queries, and then use the IoC container to enter it into the consumption code in a singleton context. This way you can mock the interface, so you do not need to make HTTP requests during testing.
source share