Add ability to do a request and just get the raw response bytes back

This commit is contained in:
Paul Bonser 2017-02-03 14:06:31 -06:00
parent 3a66a8f6d3
commit 4b222647b4

18
goes.go
View File

@ -573,14 +573,28 @@ func (c *Client) AliasExists(alias string) (bool, error) {
return resp.Status == 200, err
}
func (c *Client) replaceHost(req *http.Request) {
req.URL.Scheme = "http"
req.URL.Host = fmt.Sprintf("%s:%s", c.Host, c.Port)
}
// DoRaw Does the provided requeset and returns the raw bytes and the status code of the response
func (c *Client) DoRaw(r Requester) ([]byte, uint64, error) {
req, err := r.Request()
if err != nil {
return nil, 0, err
}
c.replaceHost(req)
return c.doRequest(req)
}
// Do runs the request returned by the requestor and returns the parsed response
func (c *Client) Do(r Requester) (*Response, error) {
req, err := r.Request()
if err != nil {
return &Response{}, err
}
req.URL.Scheme = "http"
req.URL.Host = fmt.Sprintf("%s:%s", c.Host, c.Port)
c.replaceHost(req)
body, statusCode, err := c.doRequest(req)
esResp := &Response{Status: statusCode}