在Go中,重定向请求后可以检查响应吗?

We can register CheckRedirect to check the next request when the request is redirected. Is there a way that I can get the response for the first request when it's redirected?

What do you want to do with the first response? It will be pretty boring.

I think the most sensible thing would be to disable automatically following redirects (always return a non-nil error from CheckRedirect) and handle the redirection yourself in which case you have full access to all requests/responses.

The way it is currently implemented, it doesn't seem possible to have a look at the response by default (unless you implement yourself what Do() does).
See src/net/http/client.go#L384-L399:

if shouldRedirect(resp.StatusCode) {
        // Read the body if small so underlying TCP connection will be re-used.
        // No need to check for errors: if it fails, Transport won't reuse it anyway.
        const maxBodySlurpSize = 2 << 10
        if resp.ContentLength == -1 || resp.ContentLength <= maxBodySlurpSize {
            io.CopyN(ioutil.Discard, resp.Body, maxBodySlurpSize)
        }
        resp.Body.Close()
        if urlStr = resp.Header.Get("Location"); urlStr == "" {
            err = fmt.Errorf("%d response missing Location header", resp.StatusCode)
            break
        }
        base = req.URL
        via = append(via, req)
        continue
    }