mirror of
https://github.com/gospider007/requests.git
synced 2025-12-24 13:57:52 +08:00
optimize code
This commit is contained in:
2
go.mod
2
go.mod
@@ -11,7 +11,7 @@ require (
|
||||
github.com/gospider007/ja3 v0.0.0-20231029025157-38fc2f8f2d91
|
||||
github.com/gospider007/net v0.0.0-20231028084010-313c148cf0a1
|
||||
github.com/gospider007/re v0.0.0-20231024115818-adfd03636256
|
||||
github.com/gospider007/tools v0.0.0-20231122021245-1cafbac3ef46
|
||||
github.com/gospider007/tools v0.0.0-20231128142841-23217c299fc2
|
||||
github.com/gospider007/websocket v0.0.0-20231128065110-6296f87425c4
|
||||
github.com/refraction-networking/utls v1.5.4
|
||||
golang.org/x/exp v0.0.0-20231127185646-65229373498e
|
||||
|
||||
2
go.sum
2
go.sum
@@ -45,6 +45,8 @@ github.com/gospider007/re v0.0.0-20231024115818-adfd03636256 h1:Z6kHRANoWB+/4rDz
|
||||
github.com/gospider007/re v0.0.0-20231024115818-adfd03636256/go.mod h1:X58uk0/F3mVskuQOZng0ZKJiAt3ETn0wxuLN//rVZrE=
|
||||
github.com/gospider007/tools v0.0.0-20231122021245-1cafbac3ef46 h1:vskdS8WLAveNSDHsAAdwiD+LBLMHq3AND1nGnVydwfM=
|
||||
github.com/gospider007/tools v0.0.0-20231122021245-1cafbac3ef46/go.mod h1:myK4kDqDx4TlplDVnfYMI7Xi5VUbFZ3fxwAh2Cwm7ks=
|
||||
github.com/gospider007/tools v0.0.0-20231128142841-23217c299fc2 h1:io2bXntt5LSwWIBPztZUQrGnXlqrphVi5zdGBgHuyb8=
|
||||
github.com/gospider007/tools v0.0.0-20231128142841-23217c299fc2/go.mod h1:wiILK6EotceHz/Rnb6ux8PzY3sr5OV+mYuIcbtxpkYI=
|
||||
github.com/gospider007/websocket v0.0.0-20231128065110-6296f87425c4 h1:h+74nkhhTDN2tiaDjHwR4CjqBTHgh+t1pqE2IAWHN3k=
|
||||
github.com/gospider007/websocket v0.0.0-20231128065110-6296f87425c4/go.mod h1:OncvZIlq9TzwD/tQS/BYY/RKBqbW4+gGY3Ere1K7s24=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
|
||||
@@ -8,7 +8,7 @@ const (
|
||||
chromeV = "120"
|
||||
chromeE = ".0.6099.28"
|
||||
UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/" + chromeV + ".0.0.0 Safari/537.36 Edg/" + chromeV + chromeE
|
||||
SecChUa = `"Chromium";v="%s` + chromeV + `", "Microsoft Edge";v="` + chromeV + `", "Not=A?Brand";v="99"`
|
||||
SecChUa = `"Chromium";v="` + chromeV + `", "Microsoft Edge";v="` + chromeV + `", "Not=A?Brand";v="99"`
|
||||
AcceptLanguage = "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"
|
||||
)
|
||||
|
||||
|
||||
78
option.go
78
option.go
@@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/gospider007/gtls"
|
||||
"github.com/gospider007/ja3"
|
||||
"github.com/gospider007/tools"
|
||||
"github.com/gospider007/websocket"
|
||||
)
|
||||
|
||||
@@ -45,6 +46,7 @@ type ClientOption struct {
|
||||
AddrType gtls.AddrType //dns parse addr type
|
||||
Jar *Jar //custom cookies
|
||||
|
||||
//other option
|
||||
GetProxy func(ctx context.Context, url *url.URL) (string, error) //proxy callback:support https,http,socks5 proxy
|
||||
GetAddrType func(host string) gtls.AddrType
|
||||
}
|
||||
@@ -82,6 +84,7 @@ type RequestOption struct {
|
||||
AddrType gtls.AddrType //dns parse addr type //tls timeout,default:15
|
||||
Jar *Jar //custom cookies
|
||||
|
||||
// other option
|
||||
Method string //method
|
||||
Url *url.URL
|
||||
Host string
|
||||
@@ -172,81 +175,12 @@ func (obj *RequestOption) initParams() (string, error) {
|
||||
return pu.String(), nil
|
||||
}
|
||||
func (obj *Client) newRequestOption(option RequestOption) RequestOption {
|
||||
if !option.DisProxy {
|
||||
if option.Proxy == "" && obj.option.Proxy != "" {
|
||||
option.Proxy = obj.option.Proxy
|
||||
}
|
||||
} else {
|
||||
option.Proxy = ""
|
||||
}
|
||||
tools.Merge(&option, obj.option)
|
||||
if option.MaxRetries < 0 {
|
||||
option.MaxRetries = 0
|
||||
} else if option.MaxRetries == 0 {
|
||||
option.MaxRetries = obj.option.MaxRetries
|
||||
}
|
||||
if option.Headers == nil {
|
||||
option.Headers = obj.option.Headers
|
||||
}
|
||||
if !option.Bar {
|
||||
option.Bar = obj.option.Bar
|
||||
}
|
||||
if option.MaxRedirect == 0 {
|
||||
option.MaxRedirect = obj.option.MaxRedirect
|
||||
}
|
||||
if option.Timeout == 0 {
|
||||
option.Timeout = obj.option.Timeout
|
||||
}
|
||||
if option.ResponseHeaderTimeout == 0 {
|
||||
option.ResponseHeaderTimeout = obj.option.ResponseHeaderTimeout
|
||||
}
|
||||
if option.AddrType == 0 {
|
||||
option.AddrType = obj.option.AddrType
|
||||
}
|
||||
if option.TlsHandshakeTimeout == 0 {
|
||||
option.TlsHandshakeTimeout = obj.option.TlsHandshakeTimeout
|
||||
}
|
||||
if !option.DisCookie {
|
||||
option.DisCookie = obj.option.DisCookie
|
||||
}
|
||||
if !option.DisDecode {
|
||||
option.DisDecode = obj.option.DisDecode
|
||||
}
|
||||
if !option.DisUnZip {
|
||||
option.DisUnZip = obj.option.DisUnZip
|
||||
}
|
||||
|
||||
if !option.ForceHttp1 {
|
||||
option.ForceHttp1 = obj.option.ForceHttp1
|
||||
}
|
||||
|
||||
if !option.DisAlive {
|
||||
option.DisAlive = obj.option.DisAlive
|
||||
}
|
||||
if option.OrderHeaders == nil {
|
||||
option.OrderHeaders = obj.option.OrderHeaders
|
||||
}
|
||||
|
||||
if !option.Ja3Spec.IsSet() {
|
||||
if obj.option.Ja3Spec.IsSet() {
|
||||
option.Ja3Spec = obj.option.Ja3Spec
|
||||
} else if option.Ja3 || obj.option.Ja3 {
|
||||
option.Ja3Spec = ja3.DefaultJa3Spec()
|
||||
}
|
||||
}
|
||||
if !option.H2Ja3Spec.IsSet() {
|
||||
option.H2Ja3Spec = obj.option.H2Ja3Spec
|
||||
}
|
||||
if option.OptionCallBack == nil {
|
||||
option.OptionCallBack = obj.option.OptionCallBack
|
||||
}
|
||||
if option.ResultCallBack == nil {
|
||||
option.ResultCallBack = obj.option.ResultCallBack
|
||||
}
|
||||
if option.ErrCallBack == nil {
|
||||
option.ErrCallBack = obj.option.ErrCallBack
|
||||
}
|
||||
if option.RequestCallBack == nil {
|
||||
option.RequestCallBack = obj.option.RequestCallBack
|
||||
if !option.Ja3Spec.IsSet() && option.Ja3 {
|
||||
option.Ja3Spec = ja3.DefaultJa3Spec()
|
||||
}
|
||||
return option
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user