Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/drivers/base/client.go
1987 views
1
package base
2
3
import (
4
"crypto/tls"
5
"net/http"
6
"time"
7
8
"github.com/alist-org/alist/v3/internal/conf"
9
"github.com/alist-org/alist/v3/internal/net"
10
"github.com/go-resty/resty/v2"
11
)
12
13
var (
14
NoRedirectClient *resty.Client
15
RestyClient *resty.Client
16
HttpClient *http.Client
17
)
18
var UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
19
var DefaultTimeout = time.Second * 30
20
21
func InitClient() {
22
NoRedirectClient = resty.New().SetRedirectPolicy(
23
resty.RedirectPolicyFunc(func(req *http.Request, via []*http.Request) error {
24
return http.ErrUseLastResponse
25
}),
26
).SetTLSClientConfig(&tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify})
27
NoRedirectClient.SetHeader("user-agent", UserAgent)
28
29
RestyClient = NewRestyClient()
30
HttpClient = net.NewHttpClient()
31
}
32
33
func NewRestyClient() *resty.Client {
34
client := resty.New().
35
SetHeader("user-agent", UserAgent).
36
SetRetryCount(3).
37
SetRetryResetReaders(true).
38
SetTimeout(DefaultTimeout).
39
SetTLSClientConfig(&tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify})
40
return client
41
}
42
43