46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package tool
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
const UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"
|
|
|
|
type HttpClient struct {
|
|
*http.Client
|
|
}
|
|
|
|
var httpClient *HttpClient
|
|
|
|
func init() {
|
|
httpClient = &HttpClient{http.DefaultClient}
|
|
httpClient.Timeout = time.Second * 10
|
|
}
|
|
|
|
func GetHttpClient() *HttpClient {
|
|
c := *httpClient
|
|
return &c
|
|
}
|
|
|
|
func (c *HttpClient) Get(url string) (resp *http.Response, err error) {
|
|
req, err := http.NewRequest(http.MethodGet, url, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
|
|
req.Header.Set("User-Agent", UserAgent)
|
|
return c.Do(req)
|
|
}
|
|
|
|
func (c *HttpClient) Post(url string, body io.Reader) (resp *http.Response, err error) {
|
|
req, err := http.NewRequest(http.MethodPost, url, body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
|
|
req.Header.Set("User-Agent", UserAgent)
|
|
return c.Do(req)
|
|
}
|