improve handleRedirect method, add debug output

This commit is contained in:
Sonja Happ 2021-01-21 15:22:24 +01:00
parent 5f73510679
commit 6db0373025

View file

@ -185,23 +185,27 @@ func handleRedirect(w *httptest.ResponseRecorder, req *http.Request) (int, *byte
// Follow external redirect // Follow external redirect
redirURL, err := w.Result().Location() redirURL, err := w.Result().Location()
if err != nil { if err != nil {
return 0, nil, fmt.Errorf("Invalid location header") return 0, nil, fmt.Errorf("invalid location header")
} }
// TODO: resend orginal request body log.Println("redirecting request to", redirURL.String())
req, err := http.NewRequest(req.Method, redirURL.String(), nil)
req, err := http.NewRequest(req.Method, redirURL.String(), req.Body)
if err != nil { if err != nil {
return 0, nil, fmt.Errorf("Failed to create new request: %v", err) return 0, nil, fmt.Errorf("handle redirect: failed to create new request: %v", err)
} }
client := &http.Client{} client := &http.Client{}
resp, err := client.Do(req) resp, err := client.Do(req)
if err != nil { if err != nil {
return 0, nil, fmt.Errorf("Failed to follow redirect: %v", err) return 0, nil, fmt.Errorf("handle redirect: failed to follow redirect: %v", err)
} }
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
buf.ReadFrom(resp.Body) _, err = buf.ReadFrom(resp.Body)
if err != nil {
return 0, nil, fmt.Errorf("handle redirect: failed to follow redirect: %v", err)
}
return resp.StatusCode, buf, nil return resp.StatusCode, buf, nil
} }