mirror of
https://github.com/gospider007/requests.git
synced 2025-12-24 13:57:52 +08:00
sync
This commit is contained in:
2
conn.go
2
conn.go
@@ -81,7 +81,7 @@ func taskM(conn http1.Conn, task *reqTask) error {
|
||||
if err != nil {
|
||||
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 err
|
||||
|
||||
4
dial.go
4
dial.go
@@ -554,10 +554,10 @@ func (obj *Dialer) clientVerifyHttps(ctx context.Context, conn net.Conn, proxyAd
|
||||
}
|
||||
connectReq.Header = hdr
|
||||
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
|
||||
}
|
||||
resp, err := http.ReadResponse(bufio.NewReader(conn), connectReq)
|
||||
resp, err := http1.ReadResponse(bufio.NewReader(conn))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
14
go.mod
14
go.mod
@@ -8,10 +8,10 @@ require (
|
||||
github.com/gospider007/bar v0.0.0-20250217074946-47896d8de2ba
|
||||
github.com/gospider007/bs4 v0.0.0-20250413121342-fed910fb00c9
|
||||
github.com/gospider007/gson v0.0.0-20250718004537-ff15820964bd
|
||||
github.com/gospider007/gtls v0.0.0-20250718003831-90cdeb97a23f
|
||||
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d
|
||||
github.com/gospider007/http2 v0.0.0-20250730005104-4aba01b5e597
|
||||
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f
|
||||
github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a
|
||||
github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d
|
||||
github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7
|
||||
github.com/gospider007/http3 v0.0.0-20250805092453-0bfc34e041e4
|
||||
github.com/gospider007/ja3 v0.0.0-20250724085013-aa7e0a527d6c
|
||||
github.com/gospider007/re v0.0.0-20250217075352-bcb79f285d6c
|
||||
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/refraction-networking/uquic v0.0.6
|
||||
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/net v0.42.0
|
||||
gopkg.in/errgo.v2 v2.1.0
|
||||
@@ -35,7 +35,7 @@ require (
|
||||
github.com/bodgit/plumbing v1.3.0 // indirect
|
||||
github.com/bodgit/sevenzip v1.6.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/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
|
||||
github.com/gaukas/clienthellod v0.4.2 // indirect
|
||||
@@ -56,7 +56,7 @@ require (
|
||||
github.com/libdns/libdns v1.1.0 // indirect
|
||||
github.com/mholt/acmez/v3 v3.1.2 // 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/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
|
||||
28
go.sum
28
go.sum
@@ -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/windows v1.0.1 h1:tF7K6KOluPYygXa3Z2594zxlkbKPAOvqr97etrGNIz4=
|
||||
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.23.0/go.mod h1:9mEZIWqqWoI+Gf+4Trh04MOVPD0tGSxtqsxg87hAIH4=
|
||||
github.com/caddyserver/certmagic v0.24.0 h1:EfXTWpxHAUKgDfOj6MHImJN8Jm4AMFfMT6ITuKhrDF0=
|
||||
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/go.mod h1:CxA0acn7oEGO6//4rtrRjYgEoa4MFw/XofZnrYwGqG4=
|
||||
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/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/gtls v0.0.0-20250718003831-90cdeb97a23f h1:W/ug9EHRcduL40RNtsKR9Ob0VnMQF/pps6iLTmorhck=
|
||||
github.com/gospider007/gtls v0.0.0-20250718003831-90cdeb97a23f/go.mod h1:iTnRK0DU3YH7MlZZ9VdT5gQAFPKzHRtFi3EXpnosOAM=
|
||||
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d h1:1DvDc78/QqNcheQMafDimk/gcNMUqXY3pxo4u3u9FKc=
|
||||
github.com/gospider007/http1 v0.0.0-20250730005050-515977c5b07d/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-20250730005104-4aba01b5e597/go.mod h1:LEdjVI11MOL1G1oXYKeq8caJNzTufUlNc1wV/I6AdpA=
|
||||
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f h1:4YHc5Om84Aw9g+rELN6pmXycR/IPef9ymYVKcOXBMVo=
|
||||
github.com/gospider007/http3 v0.0.0-20250730005159-34228fdf579f/go.mod h1:01sCpPril6vmM4uRGTdTPlHEpv6/5DKP/KEDunLtr5U=
|
||||
github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a h1:FdBSNOy8cLM4WYkvWgQJVoi++OwkNtsipuRcxyb5d9Q=
|
||||
github.com/gospider007/gtls v0.0.0-20250801033740-1ebcdc3aaa9a/go.mod h1:iTnRK0DU3YH7MlZZ9VdT5gQAFPKzHRtFi3EXpnosOAM=
|
||||
github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d h1:6mSf4a04dnlwF95CJuEJ1cAB3opXIx8qBVswB57JUQ8=
|
||||
github.com/gospider007/http1 v0.0.0-20250805100128-e9ba2032d57d/go.mod h1:fnyx2omi7IYVdfKxfkAUR240Au/EKZ+HruhXw2EOrdg=
|
||||
github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7 h1:o0S6ZZwnTrDwuDnRZkA0dIPsRuBe9vTlazb6+j/taR0=
|
||||
github.com/gospider007/http2 v0.0.0-20250805092410-87c07ed55dc7/go.mod h1:9heGY5Ue/tgXRZWbPYjP7+0ccZcv+4FBH1gKANCy5Q4=
|
||||
github.com/gospider007/http3 v0.0.0-20250805092453-0bfc34e041e4 h1:Em8k4roCfuYqOkYMCKOD+SxaMbyJpGIKP2e27FBCdEY=
|
||||
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/go.mod h1:zXTX/Yt8S9fChnNwUFrHaQJpZYi0xyFQ2qKP6iHvPWI=
|
||||
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/go.mod h1:LUCGp++/IbV/I0Xq4SzcIR6uwgeh2yjnQWamjRQfLTU=
|
||||
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.67/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps=
|
||||
github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA=
|
||||
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/go.mod h1:muAirjiOUxPRXwm9HdDtB3uoRPrGnL85XHtokL9Hcgc=
|
||||
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-20250224021307-5864ffeb65ae h1:ArVM1jICfm7g4E4dBet+KHUFMLuxmj1Nxdp/tr3ByCU=
|
||||
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-20230325130024-4230056ae301/go.mod h1:ntmMHL/xPq1WLeKiw8p/eRATaae6PiVRNipHFJxI8PM=
|
||||
github.com/txthinking/socks5 v0.0.0-20250803014457-d3594b14cf12 h1:L09KVukszx1o8Riju6mJZqEhcf3+9hifSU/tk60oSro=
|
||||
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.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
|
||||
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
|
||||
@@ -334,7 +334,7 @@ func (obj *Response) closeBody(i bool, err error) {
|
||||
if obj.bodyErr != io.EOF {
|
||||
obj.CloseConn()
|
||||
return
|
||||
} else if i {
|
||||
} else if i { //用户主动调用
|
||||
if obj.StatusCode() == 101 && obj.webSocket == nil {
|
||||
obj.CloseConn()
|
||||
return
|
||||
@@ -343,7 +343,6 @@ func (obj *Response) closeBody(i bool, err error) {
|
||||
if err == nil {
|
||||
err = tools.ErrNoErr
|
||||
}
|
||||
|
||||
if err == tools.ErrNoErr {
|
||||
obj.rawBody.CloseWithError(err)
|
||||
} else {
|
||||
|
||||
@@ -133,7 +133,7 @@ func (obj *roundTripper) ghttp3Dial(ctx *Response, remoteAddress Address, proxyA
|
||||
return nil, err
|
||||
}
|
||||
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"))
|
||||
})
|
||||
if ct, ok := udpConn.(interface {
|
||||
@@ -183,7 +183,7 @@ func (obj *roundTripper) uhttp3Dial(ctx *Response, remoteAddress Address, proxyA
|
||||
return nil, err
|
||||
}
|
||||
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"))
|
||||
})
|
||||
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 {
|
||||
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"))
|
||||
})
|
||||
} else {
|
||||
conn = http1.NewClientConn(cctx, rawCon, func(err error) {
|
||||
conn = http1.NewConn(cctx, rawCon, func(err error) {
|
||||
ccnl(tools.WrapError(err, "http1 client close"))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ func TestSendJsonWithGson(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// log.Print(resp.Text())
|
||||
jsonData, err := resp.Json()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user