chore: 生成 tool 改为生成 client
This commit is contained in:
@@ -16,7 +16,8 @@ func Login(localAddr net.Addr, debugOutput bool) error {
|
||||
Form: &global.Config.Form,
|
||||
Meta: &global.Config.Meta,
|
||||
},
|
||||
Client: util.HttpTools(localAddr).Client,
|
||||
Client: util.HttpPackSelect(localAddr).Client,
|
||||
Header: util.HttpPackSelect(localAddr).Header,
|
||||
}
|
||||
|
||||
var output func(args ...interface{})
|
||||
|
||||
47
util/http.go
47
util/http.go
@@ -3,40 +3,55 @@ package util
|
||||
import (
|
||||
"github.com/Mmx233/BitSrunLoginGo/global"
|
||||
"github.com/Mmx233/tool"
|
||||
"github.com/corpix/uarand"
|
||||
"net"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var HttpTool *tool.Http
|
||||
type Http struct {
|
||||
Client *http.Client
|
||||
Header http.Header
|
||||
}
|
||||
|
||||
var httpTools map[net.Addr]*tool.Http
|
||||
var HttpPack *Http
|
||||
|
||||
var httpTools map[net.Addr]*Http
|
||||
|
||||
func init() {
|
||||
if global.Config.Settings.Basic.Interfaces == "" {
|
||||
HttpTool = genHttpTool(nil)
|
||||
HttpPack = genHttpPack(nil)
|
||||
} else {
|
||||
httpTools = make(map[net.Addr]*tool.Http, 0)
|
||||
httpTools = make(map[net.Addr]*Http, 0)
|
||||
}
|
||||
}
|
||||
|
||||
func HttpTools(addr net.Addr) *tool.Http {
|
||||
if HttpTool != nil {
|
||||
return HttpTool
|
||||
func HttpPackSelect(addr net.Addr) *Http {
|
||||
if HttpPack != nil {
|
||||
return HttpPack
|
||||
}
|
||||
if addrHttp, ok := httpTools[addr]; ok {
|
||||
return addrHttp
|
||||
} else {
|
||||
httpTools[addr] = genHttpTool(addr)
|
||||
addrHttp = genHttpPack(addr)
|
||||
httpTools[addr] = addrHttp
|
||||
return addrHttp
|
||||
}
|
||||
}
|
||||
|
||||
func genHttpTool(addr net.Addr) *tool.Http {
|
||||
return tool.NewHttpTool(tool.GenHttpClient(&tool.HttpClientOptions{
|
||||
Transport: tool.GenHttpTransport(&tool.HttpTransportOptions{
|
||||
Timeout: global.Timeout,
|
||||
LocalAddr: addr,
|
||||
SkipSslCertVerify: global.Config.Settings.Basic.SkipCertVerify,
|
||||
func genHttpPack(addr net.Addr) *Http {
|
||||
var header = make(http.Header, 2)
|
||||
header.Add("User-Agent", uarand.GetRandom())
|
||||
header.Set("X-Requested-With", "XMLHttpRequest")
|
||||
|
||||
return &Http{
|
||||
Client: tool.GenHttpClient(&tool.HttpClientOptions{
|
||||
Transport: tool.GenHttpTransport(&tool.HttpTransportOptions{
|
||||
Timeout: global.Timeout,
|
||||
LocalAddr: addr,
|
||||
SkipSslCertVerify: global.Config.Settings.Basic.SkipCertVerify,
|
||||
}),
|
||||
Timeout: global.Timeout,
|
||||
}),
|
||||
Timeout: global.Timeout,
|
||||
}))
|
||||
Header: header,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,10 +31,11 @@ type Conf struct {
|
||||
//登录参数,不可缺省
|
||||
LoginInfo LoginInfo
|
||||
Client *http.Client
|
||||
Header http.Header
|
||||
|
||||
api srun.Api
|
||||
}
|
||||
|
||||
func (a *Conf) initApi() {
|
||||
a.api.Init(a.Https, a.LoginInfo.Form.Domain, a.Client)
|
||||
a.api.Init(a.Https, a.LoginInfo.Form.Domain, a.Client, a.Header)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ type Api struct {
|
||||
Header http.Header
|
||||
}
|
||||
|
||||
func (a *Api) Init(https bool, domain string, client *http.Client) {
|
||||
func (a *Api) Init(https bool, domain string, client *http.Client, header http.Header) {
|
||||
if a.inited {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user