Removed two methods that didn't actually reduce code complexity
Split out uri creation into separate method
Use URL type rather than String for the URL we return in our exceptions
Broke up the response handling into shorter methods