Эх сурвалжийг харах

Merge remote-tracking branch 'origin/hotfix/v1.3.12.1' into hotfix/v1.3.12.1

duxin 1 жил өмнө
parent
commit
afd8633a27

+ 6 - 7
core/proxy/middleware/spiderPolyHandler.go

@@ -90,23 +90,22 @@ func getVerifyPage(page string) string {
 }
 
 // SpiderJsEncrypt 反爬虫加密相应内容
-func SpiderJsEncrypt(resp *http.Response) (err error) {
-	err = util.ChangeResponse(resp, func(bytes []byte) (newBytes []byte, err error) {
+func SpiderJsEncrypt(resp *http.Response) error {
+	return util.ChangeResponse(resp, func(bytes []byte) (newBytes []byte, err error) {
 		if len(bytes) == 0 {
-			return nil, err
+			return nil, nil
 		}
-		var encryStr string
-		encryStr, err = util.JyAntiEncrypt(bytes, 9)
+		var entryStr string
+		entryStr, err = util.JyAntiEncrypt(bytes, 9)
 		if err != nil {
 			return
 		}
 		newBytes = gconv.Bytes(g.Map{
 			JyAntiEncryptSign: 1,
-			"data":            encryStr,
+			"data":            entryStr,
 		})
 		resp.Header.Add(JyAntiEncryptSign, "1")
 		resp.Header.Add("", "")
 		return
 	})
-	return
 }

+ 8 - 5
core/proxy/proxyClient/proxyClient.go

@@ -2,6 +2,7 @@ package proxyClient
 
 import (
 	"bp.jydev.jianyu360.cn/BaseService/gateway/core/util"
+	"context"
 	"github.com/gogf/gf/v2/os/gcfg"
 	"github.com/gogf/gf/v2/os/gctx"
 	"net"
@@ -28,11 +29,13 @@ func CreateCustomProxyClient(target *url.URL, errFunc func(http.ResponseWriter,
 func ReLoadClient() {
 	transport = &http.Transport{
 		Proxy: http.ProxyFromEnvironment,
-		DialContext: (&net.Dialer{
-			Timeout:   time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.timeout", 30).Int()) * time.Second,   //连接超时
-			KeepAlive: time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.keepAlive", 60).Int()) * time.Second, //长连接超时时间
-			DualStack: true,
-		}).DialContext,
+		DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
+			dialer := &net.Dialer{
+				Timeout:   time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.timeout", 30).Int()) * time.Second,   //连接超时
+				KeepAlive: time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.keepAlive", 60).Int()) * time.Second, //长连接超时时间
+			}
+			return dialer.DialContext(ctx, network, addr)
+		},
 		MaxIdleConns:          gcfg.Instance().MustGet(gctx.New(), "proxy.maxIdleConns", 120).Int(),                                     //最大空闲连接 0没有限制
 		IdleConnTimeout:       time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.idleConnTimeout", 90).Int()) * time.Second,      //空闲超时时间
 		TLSHandshakeTimeout:   time.Duration(gcfg.Instance().MustGet(gctx.New(), "proxy.tLSHandshakeTimeout", 1).Int()) * time.Second,   //tls握手超时时间

+ 3 - 2
core/util/http.go

@@ -145,8 +145,9 @@ func ChangeResponse(resp *http.Response, fn func([]byte) ([]byte, error)) (err e
 	var newContent []byte
 	newContent, err = fn(content)
 	if err != nil {
-		g.Log().Errorf(ctx, "changeRes func err", err)
-		return err
+		g.Log().Errorf(ctx, "changeRes func %v err %v", fn, err)
+	} else {
+		newContent = content
 	}
 
 	var zBuf bytes.Buffer