in backends/backends.go [73:91]
func (b *Backend) Get(path string) ([]byte, error) {
r, err := http.NewRequest(http.MethodGet, path, strings.NewReader(""))
if err != nil {
return nil, fmt.Errorf("failure creating a backend request: %w", err)
}
r.Host = b.host
rr := httptest.NewRecorder()
b.handler.ServeHTTP(rr, r)
backendResp := rr.Result()
backendRespBytes, err := ioutil.ReadAll(backendResp.Body)
backendResp.Body.Close()
if err != nil {
return nil, fmt.Errorf("failure reading the backend response from %q: %w", b.name, err)
}
if backendResp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("%w: %s", util.HTTPError(backendResp.StatusCode), string(backendRespBytes))
}
return backendRespBytes, err
}