更新 proxy/handler.go
This commit is contained in:
@@ -198,18 +198,15 @@ func (h *ProxyHandler) rewriteContent(body []byte, targetURL, contentType, token
|
|||||||
func (h *ProxyHandler) readResponseBody(resp *http.Response) ([]byte, error) {
|
func (h *ProxyHandler) readResponseBody(resp *http.Response) ([]byte, error) {
|
||||||
var reader io.Reader = resp.Body
|
var reader io.Reader = resp.Body
|
||||||
|
|
||||||
encoding := strings.ToLower(resp.Header.Get("Content-Encoding"))
|
if resp.Header.Get("Content-Encoding") == "gzip" {
|
||||||
if strings.Contains(encoding, "gzip") {
|
|
||||||
gzReader, err := gzip.NewReader(resp.Body)
|
gzReader, err := gzip.NewReader(resp.Body)
|
||||||
if err != nil {
|
if err == nil {
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer gzReader.Close()
|
defer gzReader.Close()
|
||||||
reader = gzReader
|
reader = gzReader
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
limitReader := io.LimitReader(reader, h.maxResponseSize)
|
limitReader := io.LimitReader(reader, h.maxResponseSize)
|
||||||
|
|
||||||
return io.ReadAll(limitReader)
|
return io.ReadAll(limitReader)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,7 +214,6 @@ func (h *ProxyHandler) setProxyHeaders(proxyReq, originalReq *http.Request) {
|
|||||||
headersToForward := []string{
|
headersToForward := []string{
|
||||||
"Accept",
|
"Accept",
|
||||||
"Accept-Language",
|
"Accept-Language",
|
||||||
"Accept-Encoding",
|
|
||||||
"Cache-Control",
|
"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.Set("User-Agent", h.userAgent)
|
||||||
proxyReq.Header.Del("X-Forwarded-For")
|
proxyReq.Header.Del("X-Forwarded-For")
|
||||||
proxyReq.Header.Del("X-Real-IP")
|
proxyReq.Header.Del("X-Real-IP")
|
||||||
|
|||||||
Reference in New Issue
Block a user