• Как получить список всех редиректов в http.Client?

    @qucer Автор вопроса
    Под “получить список всех редиректов” я имел ввиду получить переменную со списком которую можно потом использовть дальше.

    Примерно как тут (Java Apache HttpClient)

    public List getAllRedirectLocations(String link) throws ClientProtocolException, IOException {
        List redirectLocations = null;
        CloseableHttpResponse response = null;
    
        try {
            HttpClientContext context = HttpClientContext.create();
            HttpGet httpGet = new HttpGet(link);
            response = httpClient.execute(httpGet, context);
    
            // get all redirection locations
            redirectLocations = context.getRedirectLocations();
        } finally {
            if(response != null) {
                response.close();
            }
        }
    
        return redirectLocations;
    }


    А просто вывести можно еще и так

    type LogRedirects struct {
        Transport http.RoundTripper
    }
    
    func (l LogRedirects) RoundTrip(req *http.Request) (resp *http.Response, err error) {
        t := l.Transport
        if t == nil {
            t = http.DefaultTransport
        }
        resp, err = t.RoundTrip(req)
        if err != nil {
            return
        }
        switch resp.StatusCode {
            case http.StatusMovedPermanently, http.StatusFound, http.StatusSeeOther, http.StatusTemporaryRedirect:
                log.Println("Request for", req.URL, "redirected with status", resp.StatusCode)
        }
        return
    }
    Ответ написан
    Комментировать