This commit is contained in:
gospider
2025-08-06 08:07:38 +08:00
parent c924f57df3
commit 5dca03b46b
7 changed files with 30 additions and 30 deletions

View File

@@ -81,7 +81,7 @@ func taskM(conn http1.Conn, task *reqTask) error {
if err != nil { if err != nil {
return err return err
} }
if task.reqCtx.response != nil && task.reqCtx.response.StatusCode == 101 { if task.reqCtx.response != nil && task.reqCtx.response.Close {
return tools.ErrNoErr return tools.ErrNoErr
} }
return err return err

View File

@@ -554,10 +554,10 @@ func (obj *Dialer) clientVerifyHttps(ctx context.Context, conn net.Conn, proxyAd
} }
connectReq.Header = hdr connectReq.Header = hdr
connectReq.Host = remoteAddress.Host connectReq.Host = remoteAddress.Host
if err = http1.HttpWrite(connectReq, bufio.NewWriter(conn), connectReq.Header.Clone(), nil); err != nil { if err = http1.WriteRequest(connectReq, bufio.NewWriter(conn), connectReq.Header.Clone(), nil); err != nil {
return err return err
} }
resp, err := http.ReadResponse(bufio.NewReader(conn), connectReq) resp, err := http1.ReadResponse(bufio.NewReader(conn))
if err != nil { if err != nil {
return err return err
} }

14
go.mod
View File

@@ -8,10 +8,10 @@ require (
github.com/gospider007/bar v0.0.0-20250217074946-47896d8de2ba github.com/gospider007/bar v0.0.0-20250217074946-47896d8de2ba
github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9 github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9
github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd
github.com/gospider007/gtls v0.0.0-20250718003831-90cdeb97a23f github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d
github.com/gospider007/http2 v0.0.0-20250730005104-4aba01b5e597 github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f github.com/gospider007/http3 v0.0.0-20250805092453-0bfc34e041e4
github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c
github.com/gospider007/re v0.0.0-20250217075352-bcb79f285d6c github.com/gospider007/re v0.0.0-20250217075352-bcb79f285d6c
github.com/gospider007/tools v0.0.0-20250730001814-2c13a4717064 github.com/gospider007/tools v0.0.0-20250730001814-2c13a4717064
@@ -21,7 +21,7 @@ require (
github.com/quic-go/quic-go v0.54.0 github.com/quic-go/quic-go v0.54.0
github.com/refraction-networking/uquic v0.0.6 github.com/refraction-networking/uquic v0.0.6
github.com/refraction-networking/utls v1.8.0 github.com/refraction-networking/utls v1.8.0
github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301 github.com/txthinking/socks5 v0.0.0-20250803014457-d3594b14cf12
golang.org/x/crypto v0.40.0 golang.org/x/crypto v0.40.0
golang.org/x/net v0.42.0 golang.org/x/net v0.42.0
gopkg.in/errgo.v2 v2.1.0 gopkg.in/errgo.v2 v2.1.0
@@ -35,7 +35,7 @@ require (
github.com/bodgit/plumbing v1.3.0 // indirect github.com/bodgit/plumbing v1.3.0 // indirect
github.com/bodgit/sevenzip v1.6.1 // indirect github.com/bodgit/sevenzip v1.6.1 // indirect
github.com/bodgit/windows v1.0.1 // indirect github.com/bodgit/windows v1.0.1 // indirect
github.com/caddyserver/certmagic v0.23.0 // indirect github.com/caddyserver/certmagic v0.24.0 // indirect
github.com/caddyserver/zerossl v0.1.3 // indirect github.com/caddyserver/zerossl v0.1.3 // indirect
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
github.com/gaukas/clienthellod v0.4.2 // indirect github.com/gaukas/clienthellod v0.4.2 // indirect
@@ -56,7 +56,7 @@ require (
github.com/libdns/libdns v1.1.0 // indirect github.com/libdns/libdns v1.1.0 // indirect
github.com/mholt/acmez/v3 v3.1.2 // indirect github.com/mholt/acmez/v3 v3.1.2 // indirect
github.com/mholt/archives v0.1.3 // indirect github.com/mholt/archives v0.1.3 // indirect
github.com/miekg/dns v1.1.67 // indirect github.com/miekg/dns v1.1.68 // indirect
github.com/mikelolasagasti/xz v1.0.1 // indirect github.com/mikelolasagasti/xz v1.0.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect

28
go.sum
View File

@@ -31,8 +31,8 @@ github.com/bodgit/sevenzip v1.6.1 h1:kikg2pUMYC9ljU7W9SaqHXhym5HyKm8/M/jd31fYan4
github.com/bodgit/sevenzip v1.6.1/go.mod h1:GVoYQbEVbOGT8n2pfqCIMRUaRjQ8F9oSqoBEqZh5fQ8= github.com/bodgit/sevenzip v1.6.1/go.mod h1:GVoYQbEVbOGT8n2pfqCIMRUaRjQ8F9oSqoBEqZh5fQ8=
github.com/bodgit/windows v1.0.1 h1:tF7K6KOluPYygXa3Z2594zxlkbKPAOvqr97etrGNIz4= github.com/bodgit/windows v1.0.1 h1:tF7K6KOluPYygXa3Z2594zxlkbKPAOvqr97etrGNIz4=
github.com/bodgit/windows v1.0.1/go.mod h1:a6JLwrB4KrTR5hBpp8FI9/9W9jJfeQ2h4XDXU74ZCdM= github.com/bodgit/windows v1.0.1/go.mod h1:a6JLwrB4KrTR5hBpp8FI9/9W9jJfeQ2h4XDXU74ZCdM=
github.com/caddyserver/certmagic v0.23.0 h1:CfpZ/50jMfG4+1J/u2LV6piJq4HOfO6ppOnOf7DkFEU= github.com/caddyserver/certmagic v0.24.0 h1:EfXTWpxHAUKgDfOj6MHImJN8Jm4AMFfMT6ITuKhrDF0=
github.com/caddyserver/certmagic v0.23.0/go.mod h1:9mEZIWqqWoI+Gf+4Trh04MOVPD0tGSxtqsxg87hAIH4= github.com/caddyserver/certmagic v0.24.0/go.mod h1:xPT7dC1DuHHnS2yuEQCEyks+b89sUkMENh8dJF+InLE=
github.com/caddyserver/zerossl v0.1.3 h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA= github.com/caddyserver/zerossl v0.1.3 h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA=
github.com/caddyserver/zerossl v0.1.3/go.mod h1:CxA0acn7oEGO6//4rtrRjYgEoa4MFw/XofZnrYwGqG4= github.com/caddyserver/zerossl v0.1.3/go.mod h1:CxA0acn7oEGO6//4rtrRjYgEoa4MFw/XofZnrYwGqG4=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -112,14 +112,14 @@ github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9 h1:V/Fuzox1GNZzlZC
github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9/go.mod h1:KBnaNWpVupRQbPZ6jz2jhX/hnRK1w30RKJvl3Micjws= github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9/go.mod h1:KBnaNWpVupRQbPZ6jz2jhX/hnRK1w30RKJvl3Micjws=
github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd h1:aby4HnAGVJt5pIGKkct3V4lac/5Uq4h0bjIluG4rmak= github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd h1:aby4HnAGVJt5pIGKkct3V4lac/5Uq4h0bjIluG4rmak=
github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd/go.mod h1:GxCATDh+u/TLHTAI9p1kXfaGUkVNjHuY+Mhxdo4l5k8= github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd/go.mod h1:GxCATDh+u/TLHTAI9p1kXfaGUkVNjHuY+Mhxdo4l5k8=
github.com/gospider007/gtls v0.0.0-20250718003831-90cdeb97a23f h1:W/ug9EHRcduL40RNtsKR9Ob0VnMQF/pps6iLTmorhck= github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a h1:FdBSNOy8cLM4WYkvWgQJVoi++OwkNtsipuRcxyb5d9Q=
github.com/gospider007/gtls v0.0.0-20250718003831-90cdeb97a23f/go.mod h1:iTnRK0DU3YH7MlZZ9VdT5gQAFPKzHRtFi3EXpnosOAM= github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a/go.mod h1:iTnRK0DU3YH7MlZZ9VdT5gQAFPKzHRtFi3EXpnosOAM=
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d h1:1DvDc78/QqNcheQMafDimk/gcNMUqXY3pxo4u3u9FKc= github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d h1:6mSf4a04dnlwF95CJuEJ1cAB3opXIx8qBVswB57JUQ8=
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d/go.mod h1:fnyx2omi7IYVdfKxfkAUR240Au/EKZ+HruhXw2EOrdg= github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d/go.mod h1:fnyx2omi7IYVdfKxfkAUR240Au/EKZ+HruhXw2EOrdg=
github.com/gospider007/http2 v0.0.0-20250730005104-4aba01b5e597 h1:pSp4J0nvipoiO3v+SpAGGJjDWBr07Mx9X7uNdRWl7/0= github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7 h1:o0S6ZZwnTrDwuDnRZkA0dIPsRuBe9vTlazb6+j/taR0=
github.com/gospider007/http2 v0.0.0-20250730005104-4aba01b5e597/go.mod h1:LEdjVI11MOL1G1oXYKeq8caJNzTufUlNc1wV/I6AdpA= github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7/go.mod h1:9heGY5Ue/tgXRZWbPYjP7+0ccZcv+4FBH1gKANCy5Q4=
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f h1:4YHc5Om84Aw9g+rELN6pmXycR/IPef9ymYVKcOXBMVo= github.com/gospider007/http3 v0.0.0-20250805092453-0bfc34e041e4 h1:Em8k4roCfuYqOkYMCKOD+SxaMbyJpGIKP2e27FBCdEY=
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f/go.mod h1:01sCpPril6vmM4uRGTdTPlHEpv6/5DKP/KEDunLtr5U= github.com/gospider007/http3 v0.0.0-20250805092453-0bfc34e041e4/go.mod h1:6/TrJFJVirAzDReKWE8GOAOavXcqXLJp4E23Fh/ZM3k=
github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c h1:Ksw8S50iGK0dqYmScPRn/oOuKegHJ2j9DupSURZZmoI= github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c h1:Ksw8S50iGK0dqYmScPRn/oOuKegHJ2j9DupSURZZmoI=
github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c/go.mod h1:zXTX/Yt8S9fChnNwUFrHaQJpZYi0xyFQ2qKP6iHvPWI= github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c/go.mod h1:zXTX/Yt8S9fChnNwUFrHaQJpZYi0xyFQ2qKP6iHvPWI=
github.com/gospider007/kinds v0.0.0-20250217075226-10f199f7215d h1:+Fih572EdNmYCK1L82MyWOj9tAwIgZ2JqepmasAclg8= github.com/gospider007/kinds v0.0.0-20250217075226-10f199f7215d h1:+Fih572EdNmYCK1L82MyWOj9tAwIgZ2JqepmasAclg8=
@@ -162,8 +162,8 @@ github.com/mholt/acmez/v3 v3.1.2/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0
github.com/mholt/archives v0.1.3 h1:aEAaOtNra78G+TvV5ohmXrJOAzf++dIlYeDW3N9q458= github.com/mholt/archives v0.1.3 h1:aEAaOtNra78G+TvV5ohmXrJOAzf++dIlYeDW3N9q458=
github.com/mholt/archives v0.1.3/go.mod h1:LUCGp++/IbV/I0Xq4SzcIR6uwgeh2yjnQWamjRQfLTU= github.com/mholt/archives v0.1.3/go.mod h1:LUCGp++/IbV/I0Xq4SzcIR6uwgeh2yjnQWamjRQfLTU=
github.com/miekg/dns v1.1.51/go.mod h1:2Z9d3CP1LQWihRZUf29mQ19yDThaI4DAYzte2CaQW5c= github.com/miekg/dns v1.1.51/go.mod h1:2Z9d3CP1LQWihRZUf29mQ19yDThaI4DAYzte2CaQW5c=
github.com/miekg/dns v1.1.67 h1:kg0EHj0G4bfT5/oOys6HhZw4vmMlnoZ+gDu8tJ/AlI0= github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
github.com/miekg/dns v1.1.67/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
github.com/mikelolasagasti/xz v1.0.1 h1:Q2F2jX0RYJUG3+WsM+FJknv+6eVjsjXNDV0KJXZzkD0= github.com/mikelolasagasti/xz v1.0.1 h1:Q2F2jX0RYJUG3+WsM+FJknv+6eVjsjXNDV0KJXZzkD0=
github.com/mikelolasagasti/xz v1.0.1/go.mod h1:muAirjiOUxPRXwm9HdDtB3uoRPrGnL85XHtokL9Hcgc= github.com/mikelolasagasti/xz v1.0.1/go.mod h1:muAirjiOUxPRXwm9HdDtB3uoRPrGnL85XHtokL9Hcgc=
github.com/minio/minlz v1.0.1 h1:OUZUzXcib8diiX+JYxyRLIdomyZYzHct6EShOKtQY2A= github.com/minio/minlz v1.0.1 h1:OUZUzXcib8diiX+JYxyRLIdomyZYzHct6EShOKtQY2A=
@@ -232,8 +232,8 @@ github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6
github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf/go.mod h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM= github.com/txthinking/runnergroup v0.0.0-20210608031112-152c7c4432bf/go.mod h1:CLUSJbazqETbaR+i0YAhXBICV9TrKH93pziccMhmhpM=
github.com/txthinking/runnergroup v0.0.0-20250224021307-5864ffeb65ae h1:ArVM1jICfm7g4E4dBet+KHUFMLuxmj1Nxdp/tr3ByCU= github.com/txthinking/runnergroup v0.0.0-20250224021307-5864ffeb65ae h1:ArVM1jICfm7g4E4dBet+KHUFMLuxmj1Nxdp/tr3ByCU=
github.com/txthinking/runnergroup v0.0.0-20250224021307-5864ffeb65ae/go.mod h1:cldYm15/XHcGt7ndItnEWHwFZo7dinU+2QoyjfErhsI= github.com/txthinking/runnergroup v0.0.0-20250224021307-5864ffeb65ae/go.mod h1:cldYm15/XHcGt7ndItnEWHwFZo7dinU+2QoyjfErhsI=
github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301 h1:d/Wr/Vl/wiJHc3AHYbYs5I3PucJvRuw3SvbmlIRf+oM= github.com/txthinking/socks5 v0.0.0-20250803014457-d3594b14cf12 h1:L09KVukszx1o8Riju6mJZqEhcf3+9hifSU/tk60oSro=
github.com/txthinking/socks5 v0.0.0-20230325130024-4230056ae301/go.mod h1:ntmMHL/xPq1WLeKiw8p/eRATaae6PiVRNipHFJxI8PM= github.com/txthinking/socks5 v0.0.0-20250803014457-d3594b14cf12/go.mod h1:ntmMHL/xPq1WLeKiw8p/eRATaae6PiVRNipHFJxI8PM=
github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=

View File

@@ -334,7 +334,7 @@ func (obj *Response) closeBody(i bool, err error) {
if obj.bodyErr != io.EOF { if obj.bodyErr != io.EOF {
obj.CloseConn() obj.CloseConn()
return return
} else if i { } else if i { //用户主动调用
if obj.StatusCode() == 101 && obj.webSocket == nil { if obj.StatusCode() == 101 && obj.webSocket == nil {
obj.CloseConn() obj.CloseConn()
return return
@@ -343,7 +343,6 @@ func (obj *Response) closeBody(i bool, err error) {
if err == nil { if err == nil {
err = tools.ErrNoErr err = tools.ErrNoErr
} }
if err == tools.ErrNoErr { if err == tools.ErrNoErr {
obj.rawBody.CloseWithError(err) obj.rawBody.CloseWithError(err)
} else { } else {

View File

@@ -133,7 +133,7 @@ func (obj *roundTripper) ghttp3Dial(ctx *Response, remoteAddress Address, proxyA
return nil, err return nil, err
} }
cctx, ccnl := context.WithCancelCause(obj.ctx) cctx, ccnl := context.WithCancelCause(obj.ctx)
conn = http3.NewClient(cctx, netConn, udpConn, func() { conn = http3.NewConn(cctx, netConn, udpConn, func() {
ccnl(errors.New("http3 client close")) ccnl(errors.New("http3 client close"))
}) })
if ct, ok := udpConn.(interface { if ct, ok := udpConn.(interface {
@@ -183,7 +183,7 @@ func (obj *roundTripper) uhttp3Dial(ctx *Response, remoteAddress Address, proxyA
return nil, err return nil, err
} }
cctx, ccnl := context.WithCancelCause(obj.ctx) cctx, ccnl := context.WithCancelCause(obj.ctx)
conn = http3.NewClient(cctx, netConn, udpConn, func() { conn = http3.NewConn(cctx, netConn, udpConn, func() {
ccnl(errors.New("http3 client close")) ccnl(errors.New("http3 client close"))
}) })
if ct, ok := udpConn.(interface { if ct, ok := udpConn.(interface {
@@ -282,11 +282,11 @@ func (obj *roundTripper) dialConnecotr(ctx *Response, rawCon net.Conn, h2 bool)
if ctx.option.gospiderSpec != nil { if ctx.option.gospiderSpec != nil {
spec = ctx.option.gospiderSpec.H2Spec spec = ctx.option.gospiderSpec.H2Spec
} }
conn, err = http2.NewClientConn(cctx, ctx.Context(), rawCon, spec, func(err error) { conn, err = http2.NewConn(cctx, ctx.Context(), rawCon, spec, func(err error) {
ccnl(tools.WrapError(err, "http2 client close")) ccnl(tools.WrapError(err, "http2 client close"))
}) })
} else { } else {
conn = http1.NewClientConn(cctx, rawCon, func(err error) { conn = http1.NewConn(cctx, rawCon, func(err error) {
ccnl(tools.WrapError(err, "http1 client close")) ccnl(tools.WrapError(err, "http1 client close"))
}) })
} }

View File

@@ -87,6 +87,7 @@ func TestSendJsonWithGson(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
// log.Print(resp.Text())
jsonData, err := resp.Json() jsonData, err := resp.Json()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)