|
package base |
|
|
|
import ( |
|
"crypto/tls" |
|
"net/http" |
|
"time" |
|
|
|
"github.com/alist-org/alist/v3/internal/conf" |
|
"github.com/go-resty/resty/v2" |
|
) |
|
|
|
var ( |
|
NoRedirectClient *resty.Client |
|
RestyClient *resty.Client |
|
HttpClient *http.Client |
|
) |
|
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" |
|
var DefaultTimeout = time.Second * 30 |
|
|
|
func InitClient() { |
|
NoRedirectClient = resty.New().SetRedirectPolicy( |
|
resty.RedirectPolicyFunc(func(req *http.Request, via []*http.Request) error { |
|
return http.ErrUseLastResponse |
|
}), |
|
).SetTLSClientConfig(&tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify}) |
|
NoRedirectClient.SetHeader("user-agent", UserAgent) |
|
|
|
RestyClient = NewRestyClient() |
|
HttpClient = NewHttpClient() |
|
} |
|
|
|
func NewRestyClient() *resty.Client { |
|
client := resty.New(). |
|
SetHeader("user-agent", UserAgent). |
|
SetRetryCount(3). |
|
SetRetryResetReaders(true). |
|
SetTimeout(DefaultTimeout). |
|
SetTLSClientConfig(&tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify}) |
|
return client |
|
} |
|
|
|
func NewHttpClient() *http.Client { |
|
return &http.Client{ |
|
Timeout: time.Hour * 48, |
|
Transport: &http.Transport{ |
|
Proxy: http.ProxyFromEnvironment, |
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify}, |
|
}, |
|
} |
|
} |
|
|