DRYed up request code to make it easier to overrwrite.