package models import ( "bytes" "encoding/json" "fmt" "go-admin/logger" "io/ioutil" "net/http" "net/url" ) var exchangeClient = ExchangeClient{ Name: "diwei", Password: "deovo123", BaseURL: "http://api.china95059.net:8080", } type ExchangeClient struct { Name string Password string BaseURL string } //账号:diwei //密码:deovo123 //func ExchangeLatestUSD() (float64, error) { // //params := &url.Values{} // //latestUSDResp := &LatestUSDResp{} // //err := exchangeClient.get("/latest/USD", params, latestUSDResp) // //if err != nil { // // log.Error().Msgf("err:%#v", err) // // return 0, err // //} // //return latestUSDResp.ConversionRates.CNY, nil //} //&mobile=15015001500 &msg=【绿城信息】您 func SmsSend(tel, content string) error { params := &url.Values{} params.Set("mobile", tel) params.Set("msg", content) //latestUSDResp := &LatestUSDResp{} err := exchangeClient.get("/sms/send?", params, nil) if err != nil { logger.Error("err:", err) return err } return nil } ////https://v6.exchangerate-api.com/v6/a9208b64e4f178642020790f/latest/USD func (m *ExchangeClient) get(amApi string, params *url.Values, resp interface{}) error { params.Set("name", m.Name) params.Set("pswd", m.Password) uri := m.BaseURL + amApi fmt.Println("uri:", uri) fmt.Println("uri:", uri+params.Encode()) req, err := http.NewRequest("GET", uri+params.Encode(), nil) if err != nil { logger.Error("err:", err) return err } req.Header.Set("Content-Type", "application/json") res, err := (&http.Client{}).Do(req) if err != nil { logger.Error("err:", err) return err } defer res.Body.Close() data, err := ioutil.ReadAll(res.Body) if err != nil { logger.Error("err:", err) return err } //fmt.Println("返回数据data:") fmt.Println("Body:", string(data)) //if err = json.Unmarshal(data, &resp); err != nil { // logger.Error("err:", err) // return err //} return nil } func (m *ExchangeClient) post(amApi string, params, resp interface{}) error { uri := m.BaseURL + amApi data, err := json.Marshal(params) if err != nil { logger.Error("err:", err) return err } req, err := http.NewRequest("POST", uri, bytes.NewReader(data)) if err != nil { logger.Error("err:", err) return err } req.Header.Set("Content-Type", "application/json") res, err := (&http.Client{}).Do(req) if err != nil { logger.Error("err:", err) return err } defer res.Body.Close() //fmt.Println("返回数据data:") //fmt.Println("Body:", string(data)) data, err = ioutil.ReadAll(res.Body) if err != nil { logger.Error("err:", err) return err } if err = json.Unmarshal(data, resp); err != nil { logger.Error("err:", err) return err } return nil }