package utils import ( "encoding/json" "errors" "fmt" "git.qianqiusoft.com/qianqiusoft/light-apiengine/config" "io/ioutil" "net/http" ) var _gidUrl = "" var _gidTagPrefix = "s" //{"code":200,"data":1} type Res struct { Code int `json:"code"` Data int64 `json:"data"` } func GetGid(tag string) (id int64, err error) { if _gidUrl == "" { _gidUrl = config.AppConfig.GetKey("gid_url") _gidTagPrefix = config.AppConfig.GetKey("gid_tag_prefix") } req, err := http.NewRequest("GET", _gidUrl+_gidTagPrefix+tag, nil) if err != nil { return } res, err := http.DefaultClient.Do(req) if err != nil { return } if res == nil { err = errors.New("res is nil") return } defer func() { _ = res.Body.Close() }() body, err := ioutil.ReadAll(res.Body) var ret Res err = json.Unmarshal(body, &ret) if err != nil { return } if ret.Code != 200 { err = fmt.Errorf("gid code(%d) error", ret.Code) return } id = ret.Data return }