diff --git a/proxy/handler.go b/proxy/handler.go index d9cd62a..1469212 100644 --- a/proxy/handler.go +++ b/proxy/handler.go @@ -198,18 +198,15 @@ func (h *ProxyHandler) rewriteContent(body []byte, targetURL, contentType, token func (h *ProxyHandler) readResponseBody(resp *http.Response) ([]byte, error) { var reader io.Reader = resp.Body - encoding := strings.ToLower(resp.Header.Get("Content-Encoding")) - if strings.Contains(encoding, "gzip") { + if resp.Header.Get("Content-Encoding") == "gzip" { gzReader, err := gzip.NewReader(resp.Body) - if err != nil { - return nil, err + if err == nil { + defer gzReader.Close() + reader = gzReader } - defer gzReader.Close() - reader = gzReader } limitReader := io.LimitReader(reader, h.maxResponseSize) - return io.ReadAll(limitReader) } @@ -217,7 +214,6 @@ func (h *ProxyHandler) setProxyHeaders(proxyReq, originalReq *http.Request) { headersToForward := []string{ "Accept", "Accept-Language", - "Accept-Encoding", "Cache-Control", } @@ -227,6 +223,7 @@ func (h *ProxyHandler) setProxyHeaders(proxyReq, originalReq *http.Request) { } } + proxyReq.Header.Set("Accept-Encoding", "gzip") proxyReq.Header.Set("User-Agent", h.userAgent) proxyReq.Header.Del("X-Forwarded-For") proxyReq.Header.Del("X-Real-IP")