package util import ( "bytes" "fmt" "tmr-watch/pkg/logging" "io/ioutil" "mime/multipart" "net/http" "github.com/pkg/errors" "github.com/xormplus/xorm" ) type JSON1 struct { Access_token string `json:"access_token"` } //格润富德api调用(可咨询刘欢) func Get_AccessToken1(corpid, corpsecret string) string { gettoken_url := "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret //print(gettoken_url) client := &http.Client{} req, _ := client.Get(gettoken_url) defer req.Body.Close() body, _ := ioutil.ReadAll(req.Body) //fmt.Printf("\n%q",string(body)) var json_str JSON json.Unmarshal([]byte(body), &json_str) //fmt.Printf("\n%q",json_str.Access_token) return json_str.Access_token } func Send_Message1(msg string, url string) []byte { //print(send_url) client := &http.Client{} body := bytes.NewBuffer([]byte(msg)) req, err := http.NewRequest("POST", url, body) req.Header.Set("Content-Type", "application/json") req.Header.Set("charset", "UTF-8") if err != nil { // handle error } resp, err := client.Do(req) if err != nil { fmt.Println(err) return nil } defer resp.Body.Close() result_body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) return nil } return result_body } /*func main() { postData := make(map[string]string) postData["anchorId"] = "361155076095561728" postData["searchBegin"] = "2019-03-01 00:00:00" postData["searchEnd"] = "2020-03-10 00:00:00" url := "https:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" PostWithFormData("POST",url ,&postData) }*/ func PostWithFormData(method, url string, postData *map[string]string) error { body := new(bytes.Buffer) w := multipart.NewWriter(body) for k, v := range *postData { w.WriteField(k, v) } w.Close() req, _ := http.NewRequest(method, url, body) logging.Info("setdata: ", body.String()) req.Header.Set("Content-Type", w.FormDataContentType()) resp, _ := http.DefaultClient.Do(req) data, _ := ioutil.ReadAll(resp.Body) resp.Body.Close() m := make(map[string]interface{}, 0) json.Unmarshal(data, &m) rescode := 0 switch m["status"].(type) { case float64: rescode = int(m["status"].(float64)) case int: rescode = m["status"].(int) } if rescode == 1 { return errors.New(xorm.String(m["message"])) } return nil } // 栏舍 type Feedp struct { Status int `json:"status"` ReturnCode string `json:"returnCode"` MessageType int `json:"messageType"` Message string `json:"message"` Data []FeedpData `json:"data"` } type FeedpData struct { PenId string `json:"penId"` PenName string `json:"penName"` CowCount int `json:"cowCount"` CreatedAt string `json:"createdAt"` ModifiedAt string `json:"modifiedAt"` CcountRatio string `json:"ccountRatio"` } // 牛群类别分类 type Feed struct { Status int `json:"status"` Message string `json:"message"` Data []FeedData `json:"data"` } type FeedData struct { FId string `json:"fId"` FName string `json:"fName"` FeedclassName string `json:"feedclassName"` DryMatter string `json:"dryMatter"` Price string `json:"price"` AutoChange string `json:"autoChange"` AllowDev string `json:"allowDev"` CreatedAt string `json:"createdAt"` ModifiedAt string `json:"modifiedAt"` } // 饲料分类 type FeedClass struct { Status int `json:"status"` Message string `json:"message"` Data []FeedClassData `json:"data"` } type FeedClassData struct { FeedclassName string `json:"feedclassName"` FeedclassId string `json:"feedclassId"` CreatedAt string `json:"createdAt"` ModifiedAt string `json:"modifiedAt"` } // 牛群类别分类 type CowClass struct { Status int `json:"status"` Message string `json:"message"` Data []CowClassData `json:"data"` } type CowClassData struct { CowClassCode string `json:"cowClassCode"` CowClassName string `json:"cowClassName"` CreatedAt string `json:"createdAt"` ModifiedAt string `json:"modifiedAt"` } // 配方 type FeedTemplet struct { Status int `json:"status"` Message string `json:"message"` Data []FeedTempletData `json:"data"` } type FeedTempletData struct { FtId string `json:"ftId"` FtName string `json:"ftName"` CreatedAt string `json:"createdAt"` ModifiedAt string `json:"modifiedAt"` FeedList []FeedListData `json:"feedList"` } type FeedListData struct { FId string `json:"fId"` FName string `json:"fName"` DryMatter string `json:"dryMatter"` FodderWeight string `json:"fodderWeight"` MixNo string `json:"mixNo"` RecipeCost string `json:"recipeCost"` FeedclassName string `json:"feedclassName"` AllowableError string `json:"allowableError"` Autosecond string `json:"autosecond"` }