dingding/service/base-service.go

79 lines
1.7 KiB
Go

package service
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"strings"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
// Httpsetheader
func HttpSetHeader(method, url *string, body interface{}) (*http.Request, error) {
bb, err := json.Marshal(body)
if err != nil {
return nil, nil
}
reader := strings.NewReader(string(bb))
//生成client 参数为默认
// client := &http.Client{}
//提交请求
reqest, err := http.NewRequest(*method, *url, reader)
if err != nil {
logrus.WithFields(logrus.Fields{
"func": "Httpsetheader",
}).Warnf("%s", err.Error())
return nil, err
}
// //增加header选项
// reqest.Header.Add("Cookie", "xxxxxx")
// reqest.Header.Add("User-Agent", "xxx")
// reqest.Header.Add("X-Requested-With", "xxxx")
// if err != nil {
// panic(err)
// }
// //处理返回结果
// response, _ := client.Do(reqest)
// defer response.Body.Close()
return reqest, nil
}
func HttpPost(uri string, body interface{}) (*[]byte, error) {
bb, err := json.Marshal(body)
if err != nil {
return nil, err
}
reader := strings.NewReader(string(bb))
url := fmt.Sprintf("%s%s", viper.GetString("srv.host"), uri)
resp, err := http.Post(url, "application/json;charset=UTF-8", reader)
if err != nil {
return nil, err
}
defer resp.Body.Close()
respbody, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return &respbody, nil
}
func HttpGet(uri string) (*[]byte, error) {
url := fmt.Sprintf("%s%s", viper.GetString("srv.host"), uri)
resp, err := http.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
respbody, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
return &respbody, nil
}