refactor: reuse httpClient
This commit is contained in:
parent
f4c1cdb283
commit
d2ae9e258b
77
util/http.go
77
util/http.go
|
|
@ -9,26 +9,36 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
httpClient *http.Client
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
httpClient = &http.Client{
|
||||||
|
Timeout: 20 * time.Second,
|
||||||
|
Transport: &http.Transport{
|
||||||
|
MaxIdleConns: 200,
|
||||||
|
MaxIdleConnsPerHost: 50,
|
||||||
|
MaxConnsPerHost: 500,
|
||||||
|
IdleConnTimeout: 90 * time.Second,
|
||||||
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// PostJson 请求
|
// PostJson 请求
|
||||||
func HttpPostJson(link string, header map[string]string, json []byte) ([]byte, error) {
|
func HttpPostJson(link string, header map[string]string, json []byte) ([]byte, error) {
|
||||||
client := &http.Client{Timeout: 20 * time.Second}
|
|
||||||
//忽略https的证书
|
|
||||||
client.Transport = &http.Transport{
|
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", link, bytes.NewBuffer(json))
|
req, err := http.NewRequest("POST", link, bytes.NewBuffer(json))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if header != nil {
|
|
||||||
for k, v := range header {
|
for k, v := range header {
|
||||||
req.Header.Add(k, v)
|
req.Header.Add(k, v)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
req.Header.Add("Content-Type", "application/json")
|
req.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
resp, err := client.Do(req)
|
resp, err := httpClient.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -41,24 +51,17 @@ func HttpPostJson(link string, header map[string]string, json []byte) ([]byte, e
|
||||||
|
|
||||||
// PostJson 请求
|
// PostJson 请求
|
||||||
func HttpPutJson(link string, header map[string]string, json []byte) ([]byte, error) {
|
func HttpPutJson(link string, header map[string]string, json []byte) ([]byte, error) {
|
||||||
client := &http.Client{Timeout: 20 * time.Second}
|
|
||||||
//忽略https的证书
|
|
||||||
client.Transport = &http.Transport{
|
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err := http.NewRequest("PUT", link, bytes.NewBuffer(json))
|
req, err := http.NewRequest("PUT", link, bytes.NewBuffer(json))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if header != nil {
|
|
||||||
for k, v := range header {
|
for k, v := range header {
|
||||||
req.Header.Add(k, v)
|
req.Header.Add(k, v)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
req.Header.Add("Content-Type", "application/json")
|
req.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
resp, err := client.Do(req)
|
resp, err := httpClient.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -71,22 +74,15 @@ func HttpPutJson(link string, header map[string]string, json []byte) ([]byte, er
|
||||||
|
|
||||||
// Get 请求 link:请求url
|
// Get 请求 link:请求url
|
||||||
func HttpGet(link string, header map[string]string) ([]byte, error) {
|
func HttpGet(link string, header map[string]string) ([]byte, error) {
|
||||||
client := &http.Client{Timeout: 20 * time.Second}
|
|
||||||
//忽略https的证书
|
|
||||||
client.Transport = &http.Transport{
|
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", link, nil)
|
req, err := http.NewRequest("GET", link, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if header != nil {
|
|
||||||
for k, v := range header {
|
for k, v := range header {
|
||||||
req.Header.Add(k, v)
|
req.Header.Add(k, v)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
resp, err := client.Do(req)
|
resp, err := httpClient.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -99,22 +95,15 @@ func HttpGet(link string, header map[string]string) ([]byte, error) {
|
||||||
|
|
||||||
// Get 请求 link:请求url
|
// Get 请求 link:请求url
|
||||||
func HttpDelete(link string, header map[string]string) ([]byte, error) {
|
func HttpDelete(link string, header map[string]string) ([]byte, error) {
|
||||||
client := &http.Client{Timeout: 20 * time.Second}
|
|
||||||
//忽略https的证书
|
|
||||||
client.Transport = &http.Transport{
|
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err := http.NewRequest("DELETE", link, nil)
|
req, err := http.NewRequest("DELETE", link, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if header != nil {
|
|
||||||
for k, v := range header {
|
for k, v := range header {
|
||||||
req.Header.Add(k, v)
|
req.Header.Add(k, v)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
resp, err := client.Do(req)
|
resp, err := httpClient.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue