From 6ae5f0b800d93ec98ffd3de251e2ab9add819f0e Mon Sep 17 00:00:00 2001 From: XOF Date: Mon, 15 Dec 2025 06:38:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20proxy/handler.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proxy/handler.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) 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")