1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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
- }
|