do carries out an HTTP request and returns a Response
(req *http.Request)
| 80 | |
| 81 | // do carries out an HTTP request and returns a Response |
| 82 | func (client *Client) do(req *http.Request) (*Response, error) { |
| 83 | if req == nil { |
| 84 | return nil, fmt.Errorf("%T cannot be nil", req) |
| 85 | } |
| 86 | |
| 87 | httpResponse, err := client.httpClient.Do(req) |
| 88 | if err != nil { |
| 89 | return nil, err |
| 90 | } |
| 91 | |
| 92 | defer func() { _ = httpResponse.Body.Close() }() |
| 93 | |
| 94 | resp, err := client.newResponse(httpResponse) |
| 95 | if err != nil { |
| 96 | return resp, err |
| 97 | } |
| 98 | |
| 99 | _, err = io.Copy(io.Discard, httpResponse.Body) |
| 100 | if err != nil { |
| 101 | return resp, err |
| 102 | } |
| 103 | |
| 104 | return resp, nil |
| 105 | } |
| 106 | |
| 107 | // newResponse converts an *http.Response to *Response |
| 108 | func (client *Client) newResponse(httpResponse *http.Response) (*Response, error) { |
no test coverage detected