You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
946 B
44 lines
946 B
package service |
|
|
|
import ( |
|
"crypto/md5" |
|
"fmt" |
|
"io/ioutil" |
|
"net/http" |
|
"strconv" |
|
|
|
"go-common/library/log" |
|
) |
|
|
|
// HTTPClient http client handle |
|
func (s *Service) HTTPClient(method, url string, params map[string]string, nowTime int64) (body []byte, err error) { |
|
req, err := http.NewRequest(method, url, nil) |
|
if err != nil { |
|
log.Error("http.NewRequest error(%v)", err) |
|
return |
|
} |
|
|
|
q := req.URL.Query() |
|
for key, value := range params { |
|
q.Add(key, value) |
|
} |
|
q.Add("appkey", s.conf.KeySecret.Key) |
|
q.Add("ts", strconv.FormatInt(nowTime, 10)) |
|
|
|
sign := q.Encode() + s.conf.KeySecret.Secret |
|
q.Add("sign", fmt.Sprintf("%x", md5.Sum([]byte(sign)))) |
|
|
|
req.URL.RawQuery = q.Encode() |
|
resp, err := http.DefaultClient.Do(req) |
|
if err != nil { |
|
log.Error("http.DefaultClient.Do error(%v)", err) |
|
return |
|
} |
|
defer resp.Body.Close() |
|
body, err = ioutil.ReadAll(resp.Body) |
|
if err != nil { |
|
log.Error("ioutil.ReadAll error(%v)", err) |
|
} |
|
|
|
return |
|
}
|
|
|