DoResponse method should return correct error.

When json.Unmarshal fails in the DoResponse method it should returns the associated error. Currently it returns the error generated from ioutil.ReadAll with isn't directly related. I think that the DoResponse method should return an error if the ioutil.ReadAll fails and not attempt the json.Unmarshal. These unreported cause the error propagation to fail which results nil pointer issues later.

Please let me know if there is anything additional I need to do to get this merged into the main branch.