package main import ( "github.com/pkg/errors" "io" "net/http" "net/http/cookiejar" "strconv" "time" ) var Client *http.Client func init() { transport := http.DefaultTransport.(*http.Transport).Clone() transport.MaxIdleConnsPerHost = 10 jar, _ := cookiejar.New(nil) Client = &http.Client{ Transport: transport, CheckRedirect: nil, Jar: jar, Timeout: 15 * time.Second, } } func createRequest(method string, url string, body io.Reader) *http.Request { req, _ := http.NewRequest(method, url, body) req.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0") return req } func checkHttpError(res *http.Response, err error) error { if err != nil { return errors.WithStack(err) } if res.StatusCode != http.StatusOK { return errors.New(strconv.Itoa(res.StatusCode)) } return nil }